[firebase-br] Melhorar consulta com SQL aninhado - Firebird 1.5
Joel do Prado Junior
big.rid.listas em gmail.com
Qui Ago 22 16:45:01 -03 2013
experimente ir por este caminho:
select
v.codigo,
v.nome
from vendedores v
left join pedidosven p on p.vendedor=v.codigo
where
(pvendedor is null) and
(v.status in ('Ativa', 'Inativa'))
Em 22/08/2013 16:27, Felipe Aron escreveu:
> PessoALL, estou utilizando o Firebird 1.5.
>
> Preciso de uma consulta que me retorne vendedoras (locais), agrupadas por
> representante, que não tiveram pedido feito numa determinada filial.
>
> A grosso modo fiz o resultado das vendedoras com SQL aninhado mas esse tipo
> de SQL fica muito lento:
>
> *select distinct*
> * vend.codigo,*
> * vend.nome,*
> *
> *
> *from vendedores vend*
> *
> *
> *where vend.representante = 179*
> * and vend.status in ('Ativa', 'Inativa')*
> * and vend.codigo NOT IN (*
> *
> *
> * select distinct(ped.vendedor)*
> * from pedidosven ped*
> * join vendedores vend on ped.vendedor = vend.codigo*
> * where ped.origem = 12 /* FILIAL */*
> * and vend.status in ('Ativa', 'Inativa')*
> * )*
> *
> *
> *order by vend.nome*
>
> Fiz uma SQL que retorna um "array" das vendedoras que já tiveram pedidos na
> filial e uso esse array para filtrar as vendedoras que não constam aqui.
>
> Achei além de demorado, deselegante, gostaria da opinião de vocês pra
> melhorar essa rotina, preciso expandir meus conhecimentos.
>
Mais detalhes sobre a lista de discussão lista