[firebase-br] [Spam] como otimizar essa sql

Kléber Caneva kdcc em terra.com.br
Sex Fev 1 11:52:20 -03 2013


Usando o Group by deve ficar mais rapido do que fazer varios subselects.
Tente assim:

Select
  ESTOQUE.codigo,
  ESTOQUE.produto,
  ESTOQUE.CUSTO,
  ESTOQUE.custocomimpostos,
  (ESTOQUE.ESTOQUELOJA+ESTOQUE.ESTOQUEDEPOSITO) as DISPONIVEL,
  SUM( vendacorpo.UNIDADES * ESTOQUE.CUSTO )  AS TTCUSTO ,
  SUM( vendacorpo.UNIDADES * vendacorpo.VENDAUNITARIO ) as  TTVENDA,
  SUM( UNIDADES ) AS TTVENDIDO
>From ESTOQUE
Join VENDACORPO on (VENDACORPO.CODPRODUTO=ESTOQUE.codigo AND DATA>= :XDATA 
AND DATA<= :XDATA )
Where ESTOQUE.produto like :XPROD
Group by  1,2,3,4,5
Order by ESTOQUE.PRODUTO

[]´s
Kléber Caneva


----- Original Message ----- 
From: "Augusto junior" <gutopj02 em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, January 31, 2013 5:03 PM
Subject: [Spam] [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