[firebase-br] RES: como otimizar essa sql
Jonas Rodrigo Pacheco
jonas.pacheco em tecnicon.com.br
Qui Jan 31 17:56:38 -03 2013
Boa tarde...
Cara você passa 3x na mesma tabela... tenta algo parecido com isso...
select ESTOQUE.CODIGO, ESTOQUE.PRODUTO, ESTOQUE.CUSTO, ESTOQUE.CUSTOCOMIMPOSTOS,
(ESTOQUE.ESTOQUELOJA + ESTOQUE.ESTOQUEDEPOSITO) as DISPONIVEL,
VENDA.TTCUSTO,
VENDA.TTVENDA,
VENDA.TTVENDIDO
from ESTOQUE
left join (select VENDACORPO.CODPRODUTO,sum(UNIDADES) as TTVENDIDO,sum(UNIDADES * VENDAUNITARIO) AS TTVENDA,sum(UNIDADES * CUSTO) AS TTCUSTO
from VENDACORPO
where DATA >= :XDATA and DATA <= :XDATA
GROUP BY VENDACORPO.CODPRODUTO
) AS VENDA ON (VENDA.CODPRODUTO = ESTOQUE.CODIGO)
where ESTOQUE.PRODUTO like :XPROD AND VENDA.TTVENDIDO>0
order by ESTOQUE.PRODUTO
Qualquer dúvida estarei a disposição!
Jonas Rodrigo Pacheco
-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Augusto junior
Enviada em: quinta-feira, 31 de janeiro de 2013 17:03
Para: FireBase
Assunto: [firebase-br] como otimizar essa sql
Tem como deixar essa sql melhor?
select
ESTOQUE.codigo,
ESTOQUE.produto,
ESTOQUE.CUSTO,
ESTOQUE.custocomimpostos,
(ESTOQUE.ESTOQUELOJA+ESTOQUE.ESTOQUEDEPOSITO) as DISPONIVEL,
( select SUM( UNIDADES * CUSTO ) FROM vendacorpo WHERE VENDACORPO.CODPRODUTO=ESTOQUE.codigo AND DATA>= :XDATA
AND DATA<= :XDATA ) AS TTCUSTO ,
( select SUM( UNIDADES * VENDAUNITARIO ) FROM vendacorpo WHEREVENDACORPO.CODPRODUTO=ESTOQUE.codigo AND DATA>= :XDATA
AND DATA<= :XDATA ) AS TTVENDA,
( select SUM( UNIDADES ) FROM vendacorpo WHERE VENDACORPO.CODPRODUTO=ESTOQUE.codigo AND DATA>= :XDATA
AND DATA<= :XDATA ) AS TTVENDIDO
from
estoque
where
ESTOQUE.produto like :XPROD
AND
( select SUM( UNIDADES ) FROM vendacorpo WHERE VENDACORPO.CODPRODUTO=ESTOQUE.codigo AND DATA>= :XDATA
AND DATA<=:XDATA ) >0
ORDER BY ESTOQUE.PRODUTO
Grato
Augusto
______________________________________________
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