[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