ajuda no trabalho

SQL

13/02/2006

tenho duas tabelas :

CLIENTE(CODCLI,NOME)

PRODUTO(CODPROD,NOME)

COMPRA(CODCOMPRA,CODCLI,CODPROD,DATA)

COMO DESCOBRIR QUAL CLINETE COMPROU TODOS OS PRODUTOS

STOU PRECISANDO


Pereiramarcos

Pereiramarcos

Curtidas 0

Respostas

Motta

Motta

13/02/2006

depende do bd , no Oracle fez ...

select CODCLI,count(distinct CODPROD)
 from COMPRA
 group by CODCLI
 having count(distinct CODPROD) = (select count(*) from PRODUTO)


Tinha uma solução classica com 2 not in´s mas não me lembro agora


GOSTEI 0
Pereiramarcos

Pereiramarcos

13/02/2006

valeu motta, muito obrigado, eu tb queria lembrar essa solucao classica ate para entender, fiz isso mas ja faz algum tempo, mas como fico fazendo queries faceis como pequenas contagems, essa tem uma solucao legal. . . so que nao sei onde encontrala, mas de qualquer jeito muito obrigado...


GOSTEI 0
Motta

Motta

13/02/2006

Acho que eram dois not exists

Seria : Diga os clientes que não exista produto que eleas nao tenha compado

Deve ter na minha máquina de casa, de um curso que fiz na PUC a tempos se achar posto


GOSTEI 0
Pereiramarcos

Pereiramarcos

13/02/2006

Por acaso foi com o Paulinho / Rubens, e dela que quero lembra isso. . .

valeu !!!!!!!!


GOSTEI 0
Motta

Motta

13/02/2006

Exato :

Paulinho ´não menosprezem o problema ....´

aqui vai , não achei a def. dastabelas mas acho que ajuda ....

--10. Alunos que realizaram todas as disciplinas do seu curso.

SELECT A.MATRICULA, A.NOME
FROM ALUNO A
WHERE NOT EXISTS
(SELECT *
FROM POSSUI P
WHERE A.CODIGO_CURSO=P.CODIGO_CURSO AND
NOT EXISTS
(SELECT *
FROM REALIZOU R
WHERE A.MATRICULA = R.MATRICULA AND
P.COD_DISCIP = R.CODIGO_DISCIP));


GOSTEI 0
Motta

Motta

13/02/2006

Se vacilar até fizemos o curso na mesma turma , lembro que não resolvi como ele queria (por subtracão) mas ele até elogiou a minha solução (a do count distinct) , quando vi sua questão lembrei do curso.

Falou !


GOSTEI 0
Pereiramarcos

Pereiramarcos

13/02/2006

é possivel, valeu . . .. :P


GOSTEI 0
POSTAR