[firebase-br] Melhorar consulta com SQL aninhado - Firebird 1.5

Felipe Aron felipearon em gmail.com
Qui Ago 22 18:22:39 -03 2013


Joel valeu a dica!

Literalmente, mente cansada, final de tarde a coisa começa a ir pelo
caminho mais complexo... kkk

Em resumo, basta eu fazer um agrupamento dos dados usando having count(*) =
0

Amanhã cedo, de cabeça fresca monto a SQL e posto aqui pra que talvez ajude
outros na lista.

Att.


Em 22 de agosto de 2013 16:45, Joel do Prado Junior <
big.rid.listas em gmail.com> escreveu:

> 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.
>>
>>
>
> ______________________________**________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



-- 
Analista-Programador
#FollowMe: @felipearon <http://twitter.com/felipearon> (
http://felipearon.net)



Mais detalhes sobre a lista de discussão lista