[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