[firebase-br] RES: RES: RES: RES: Comando Except

Felix felix.sol em terra.com.br
Seg Set 5 12:28:18 -03 2011


Usando as mesmas tabelas, com a sugestão do Andre Conrado:

select p.codigopro 
from produto p 
left join it_pedido i on p.codigopro = i.CODIGOPRO 
where i.codigopro is null

Tempo--> 04 minutos e 16 segundos

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Felix
Enviada em: segunda-feira, 5 de setembro de 2011 11:57
Para: 'FireBase'
Assunto: [firebase-br] RES: RES: RES: Comando Except

A exemplo, [Produto 605 registros] / [It_Pedido 500.000 registros]:

Lento: SELECT codigopro FROM PRODUTO where codigopro not in (select
codigopro from it_pedido)
--> Tempo para resposta em uma base de dados de exemplo: 01 minuto e 12
segundos

Rápido: Menor que 1 segundo
select codigopro from
(
SELECT x.codigopro, sum(vendas) contem from
( select p.codigopro, 0 vendas from produto p
    union
  select i.codigopro, 1 vendas from IT_PEDIDO i) x
group by codigopro
)
where contem = 0

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Eli Flavio Bortolotte
Enviada em: segunda-feira, 5 de setembro de 2011 07:49
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] RES: RES: Comando Except

Disso eu sei, conforme eu disse abaixo, mas qual a alternativa?

Eli Flávio Bortolotte


"Felix"  escreveu na notícia da 
mensagem:77.2031759426639$1315144102 em news.gmane.org...

Já foi discutido na lista, no uso com tabelas grandes o 'not in' pode ficar
lento.

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br

-----Mensagem original-----
De: lista-bounces em firebase.com.br 
[mailto:lista-bounces em firebase.com.br] Em
nome de Eli Flavio Bortolotte
Enviada em: domingo, 4 de setembro de 2011 08:38
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] RES: Comando Except

Felix, o SELECT funcionou perfeitamente com NOT IN, é que quando eu
trabalhava com SQL Server eu usava o EXCEPT ao invés de NOT IN nestas
situações, porque era muito mais rápido, pensei que o Firebird pudesse ter
um comando parecido também.


Eli Flávio Bortolotte


"Felix"  escreveu na notícia da
mensagem:27828.8381094628$1314997669 em news.gmane.org...

Eli, posta teu SQL para analise?

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br

-----Mensagem original-----
De: lista-bounces em firebase.com.br
[mailto:lista-bounces em firebase.com.br] Em
nome de Eli Flavio Bortolotte
Enviada em: sexta-feira, 2 de setembro de 2011 16:06
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] Comando Except

Não. Eu queria fazer um select pegando somente os registros que não estejam
em outro select sem usar o NOT IN.

Eli Flávio Bortolotte


"Marcio Gleyson Silva"  escreveu na notícia da
mensagem:CAD4GoM_AVqbtNkthAkjyKwTDp8GJeQSsGGHKm6fJyXvub+XhQQ em mail.gmail.com.
..

você quer criar um exceção ?

Em 2 de setembro de 2011 11:11, Eli Flavio Bortolotte
<eliflavio em gmail.com>escreveu:

> Existe no Firebird algum comando contrário ao JOIN, tipo o Except do SQL
> Server?
>
> Eli Flávio Bortolotte
>
>
>
> ______________________________**________________
> 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.b
r/fb/artigo.php?id=1107>
> Para consultar mensagens antigas:
> http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>
______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 



______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista