clausula exist
18/06/2013
0
Mariana Carvalho
Posts
18/06/2013
Carlos Tangerino
Por exemplo, quando você tem uma tabela de produtos e uma de pedidos, e você só quer trazer aqueles produtos que já tiveram pelo menos um pedido feito. Ou seja, você, pelo EXISTS, vai na tabela de pedidos, ligando por um id de produto, saber se ele está nessa tabela.
select pro.cod_produto, pro.descr_produto from produto pro
where exists (select 1 from pedido ped where ped.id_produto = pro.id_produto);
O mesmo pode ser feito para saber o contrário, quando deseja selecionar os produtos que não tem pedido feito, ou seja, utilize o NOT EXISTS.
select pro.cod_produto, pro.descr_produto from produto pro
where not exists (select 1 from pedido ped where ped.id_produto = pro.id_produto);
Espero ter esclarecido um pouco. Se precisar de algo mais específico, coloque aqui.
18/06/2013
Mariana Carvalho
possi utilizar esses codigo SQL em alguma aplicação não é? interessante, colocar algum
sistema o botão que simplesmente apareça essas opções!!!
obrigada
18/06/2013
Alex Lekao
Uma possibilidade de utilizado seria para informar quais itens nao tiveram vendas em um determinado periodo.
Itens sem vendas, no caso esse tipo de relatorio eh bastante util para saber os itens que estao encalhados e se fazer uma possivel promocao para capitalizar a empresa, aumentar o caixa ou simplesmente desencalhar produtos que nao estao vendendo para inativa-los.
Acredito que a unica coisa que precise ser verificada para se utilizar esta funcao eh a performance dela, se nao ha outra maneira de ter o mesmo resultado de maneira mais performatica.
E parabens ao amigo que colocou a explicacao, ela foi bem clara e objetiva de forma simples para o entendimento, eu sempre tive um pouco de dificuldade de entende-la e compreende-la, e do jeito que explicou ficou muito bom.
Obrigado.
Abraco.
Alex - Lekao
18/06/2013
Carlos Tangerino
Como toda consulta à banco de dados, destacado pelo nosso colega Alex - Lekao, independente de ter ou não o EXISTS, as tabelas consultadas tem que estar bem "amarradas" umas às outras, pois qualquer erro ou falta de um índice, por exemplo, pode deixar a consulta bem lenta...
No exemplo citado, a tabela que será verificada pelo EXISTS, é interessante que tenha um índice criado para a coluna que será a chave, ou seja, um índice para o id_produto. Dessa maneira, o banco utiliza-o para acessar as informações mais rapidamente... e por aí vai...
Abraço,
18/06/2013
Alex Lekao
Embora nao entenda muito bem o funcionamento, na vdd quase nada, eu procuro usar o Plano de Execucao Estimado, ja me ajudou com relacao a uma criacao de indice que melhorou consideravelmente uma consulta que estava fazendo.
Abraco.
Alex - Lekao
19/06/2013
Mariana Carvalho
possi utilizar esses codigo SQL em alguma aplicação não é? interessante, colocar algum
sistema o botão que simplesmente apareça essas opções!!!
obrigada
obrigado a todos pelas respostas, me ajudaram bastante!!!
mas a pergunta acima, é possivel?
19/06/2013
Alex Lekao
Provavelmente qdo vc vai implementar algum botao vc consegue inserir o codigo sql para aquela funcionalidade do botao, entao eh possivel sim.
So para ressaltar, nao sou programador nem tenho a menor ideia de como se faz botao, etc, etc, etc... srsrsr
Abraco.
Alex - Lekao
19/06/2013
Mariana Carvalho
muito obrigada!!!
19/06/2013
Alex Lekao
Como disse antes eh bem interessante para um relatorio por exemplo de produtos sem vendas, clientes sem compras, etc, etc... rsrsr
Fico feliz em ter podido ajudar.
Abraco.
Alex - Lekao
19/06/2013
Alex Lekao
Como disse antes eh bem interessante para um relatorio por exemplo de produtos sem vendas, clientes sem compras, etc, etc... rsrsr
Fico feliz em ter podido ajudar.
Abraco.
Alex - Lekao
Embora a ajuda mesmo foi dada pelo Carlos. ;-.) rsrsrsr
29/06/2013
Joel Rodrigues
Abraço a todos.
Clique aqui para fazer login e interagir na Comunidade :)