Fórum Dois Select sum(...? Como? #221020
18/03/2004
0
CommandText := ´Select MOVIESTOQUE.PRODUTO, SUM(MOVIESTOQUE.QUANTIDADE)as SubTotal, PRODUTOS.DESCRICAO as DESCRPRODUTO from MOVIESTOQUE Inner Join PRODUTOS on PRODUTOS.CODIGO = MOVIESTOQUE.PRODUTO Where MOVIESTOQUE.DATA BETWEEN :VInicio and :VFim and OPERACAO =:VOperacao Group By PRODUTO, DESCRICAO´;
Params[0].AsDate := VDataInicial;
Params[1].AsDate := VDataFinal;
Se quero o relatório de entradas, complemento a rotina assim:
Params[2].asString := ´E´.
E, se quero o relatório de saídas, complemento a rotina assim:
Params[2].asString := ´S´
O relatório funciona bem. O problema é que, do jeito que está, tenho que fazer dois relatórios: um para saídas e outro para entradas. O que gostaria de fazer é apenas um relatório onde constassem os dois SubTotal - tipo duas colunas. Já tentei fazer duas Query, mas daí aquela que eu não colocar na propriedade DataSet do QuickReport imprimirá apenas o primeiro lançamento.
Se você tiver uma idéia de como fazer o que eu preciso, por gentileza me ajude. Obrigado.
Precisaria fazer dois ´Select Sum(...´ na mesma instrução SQL, mas como?
Valdirdill
Curtir tópico
+ 0Posts
18/03/2004
Blackjaguar
Select
PRODUTOS.CODIGO,
PRODUTOS.DESCRICAO as DESCRPRODUTO,
(Select sum (MOVIESTOQUE.QUANTIDADE)
from MOVIESTOQUE
Where MOVIESTOQUE.DATA BETWEEN :VInicio and :VFim
and OPERACAO = ´E´
and PRODUTOS.CODIGO = MOVIESTOQUE.PRODUTO) as SubTotalEntrada,
(Select sum (MOVIESTOQUE.QUANTIDADE)
from MOVIESTOQUE
Where MOVIESTOQUE.DATA BETWEEN :VInicio and :VFim
and OPERACAO = ´S´
and PRODUTOS.CODIGO = MOVIESTOQUE.PRODUTO) as SubTotalSaida
from PRODUTOS
Gostei + 0
18/03/2004
Paulo_amorim
1- tente agrupar por OPERACAO tambem...
2- Se nao der certo:
Como as 2 queries sao quase iguais, pode-se usar UNION
Select M.PRODUTO as Produto, SUM(M.QUANTIDADE)as SubTotal, P.DESCRICAO as DescProduto from MOVIESTOQUE M Inner Join PRODUTOS P on P.CODIGO = M.PRODUTO Where M.DATA BETWEEN :VInicio and :VFim and OPERACAO = ´E´ Group By PRODUTO, DESCRICAO UNION Select M.PRODUTO as Produto, SUM(M.QUANTIDADE)as SubTotal, P.DESCRICAO as DescProduto from MOVIESTOQUE M Inner Join PRODUTOS P on P.CODIGO = M.PRODUTO Where M.DATA BETWEEN :VInicio and :VFim and OPERACAO = ´S´ Group By PRODUTO, DESCRICAO
Até+
Gostei + 0
18/03/2004
Emerson Nascimento
Select PROD.CODIGO AS PRODUTO,PROD.DESCRICAO AS DESCRPRODUTO,
          SUM(MOV_E.QUANTIDADE) as QTD_ENTRADA, SUM(MOV_S.QUANTIDADE) as QTD_SAIDA
from PRODUTOS PROD
Left Join MOVIESTOQUE MOV_E on (MOV_E.PRODUTO = PROD.CODIGO AND MOV_E.OPERACAO = ´E´
      AND MOV_E.DATA BETWEEN :VINICIO AND :VFIM)
Left Join MOVIESTOQUE MOV_S on (MOV_S.PRODUTO = PROD.CODIGO AND MOV_S.OPERACAO = ´S´
      AND MOV_S.DATA BETWEEN :VINICIO AND :VFIM)
Where NOT (MOV_E.QUANTIDADE IS NULL) AND NOT (MOV_S.QUANTIDADE IS NULL)
Group By PROD.CODIGO, PROD.DESCRICAO
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)