[firebase-br] Res: Melhorar sentença SQL

Robson Gomes robsonfg em terra.com.br
Qua Maio 27 09:20:46 -03 2009


select A.A005_DMOV, A.A005_NFIN, A.A005_NFFI, A.A005_SERI, A.A005_SUBS, 
A.A005_EMIT, A.A005_VCON, A.A005_TIPO, B.A028_CFOP, B.A028_SEQU from 
A024005_tbl A, A024028_tbl B where A.A005_DMOV between '01.01.2008' and 
'31.01.2008' and A.A005_DMOV = B.A028_DMOV and A.A005_NFIN = B.A028_NFIN and

A.A005_NFFI = B.A028_NFFI and A.A005_SERI = B.A028_SERI and A.A005_SUBS = 
B.A028_SUBS and A.A005_EMIT = B.A028_EMIT and A.A005_TIPO =:tipo and 
B.A028_INTE <> 'N' order by A.A005_DMOV, A.A005_NFIN 
 
 
basta passar '1' ou '4' para o parametro :tipo-------Mensagem
original------- 
 
De: tetraetila® 
Data: 27/05/2009 09:18:06 
Para: FireBase 
Assunto: [firebase-br] Melhorar sentença SQL 
 
Olá Pessoal 
 
Faço dois "select's" que extraem dados de duas tabelas A001005_TBL e 
A001028_TBL a cláusula where que diferencia um select do outro é apenas 
A.a005_tipo = '4' ou A.a005_tipo = '1', tem como eu melhorar isto fazendo 
apenas uma sentença e não as duas? O mesmo critério eu utilizo para somar. O

que eu quero é otimizar estas sentenças uma vez que as utilizo em vários 
outros locais. 
 
Muito obrigado! 
 
Adilson 
 
 
Obs.: Sentenças abaixo: 
 
Tipo = '1' 
 
select A.A005_DMOV, A.A005_NFIN, A.A005_NFFI, A.A005_SERI, A.A005_SUBS, 
A.A005_EMIT, A.A005_VCON, A.A005_TIPO, B.A028_CFOP, B.A028_SEQU from 
A024005_tbl A, A024028_tbl B where A.A005_DMOV between '01.01.2008' and 
'31.01.2008' and A.A005_DMOV = B.A028_DMOV and A.A005_NFIN = B.A028_NFIN and

A.A005_NFFI = B.A028_NFFI and A.A005_SERI = B.A028_SERI and A.A005_SUBS = 
B.A028_SUBS and A.A005_EMIT = B.A028_EMIT and A.A005_TIPO = '1' and 
B.A028_INTE <> 'N' order by A.A005_DMOV, A.A005_NFIN 
 
Tipo = '4' 
 
select A.A005_DMOV, A.A005_NFIN, A.A005_NFFI, A.A005_SERI, A.A005_SUBS, 
A.A005_EMIT, A.A005_VCON, A.A005_TIPO, B.A028_CFOP, B.A028_SEQU from 
A024005_tbl A, A024028_tbl B where A.A005_DMOV between '01.01.2008' and 
'31.01.2008' and A.A005_DMOV = B.A028_DMOV and A.A005_NFIN = B.A028_NFIN and

A.A005_NFFI = B.A028_NFFI and A.A005_SERI = B.A028_SERI and A.A005_SUBS = 
B.A028_SUBS and A.A005_EMIT = B.A028_EMIT and A.A005_TIPO = '4' and 
B.A028_INTE <> 'N' order by A.A005_DMOV, A.A005_NFIN 
 
 
Soma Tipo = '1' 
 
select sum(A.A005_VCON) AS TOTAL from A024005_tbl A, A024028_tbl B where 
A.A005_DMOV between '01.01.2008' and '31.01.2008' and A.A005_DMOV = 
B.A028_DMOV and A.A005_NFIN = B.A028_NFIN and A.A005_NFFI = B.A028_NFFI and 
A.A005_SERI = B.A028_SERI and A.A005_SUBS = B.A028_SUBS and A.A005_EMIT = 
B.A028_EMIT and A.A005_TIPO = '1' and B.A028_INTE <> 'N' 
 
Soma Tipo = '4' 
 
select sum(A.A005_VCON) AS TOTAL from A024005_tbl A, A024028_tbl B where 
A.A005_DMOV between '01.01.2007' and '31.12.2007' and A.A005_DMOV = 
B.A028_DMOV and A.A005_NFIN = B.A028_NFIN and A.A005_NFFI = B.A028_NFFI and 
A.A005_SERI = B.A028_SERI and A.A005_SUBS = B.A028_SUBS and A.A005_EMIT = 
B.A028_EMIT and A.A005_TIPO = '4' and B.A028_INTE <> 'N' 
 
 
______________________________________________ 
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 
 
 
____________________________________________________________ 
 
 
No virus found in this incoming message. 
Checked by AVG - www.avg.com 
Version: 8.5.339 / Virus Database: 270.12.40/2135 - Release Date: 05/26/09
08:53:00 
 




Mais detalhes sobre a lista de discussão lista