Fórum Select com SUM!! Meio Complicado!! #272941
17/03/2005
0
PRODUTO
...CODPROD
...NOMEPROD
...VALOR
TAB1
...CODPROD
...QTDEPROD
TAB2
...CODPROD
...QTDEPROD
Tava querendo fazer um relatorio pra trazer o valor pago nos produtos!!
tipow assim:
select sum(P.VALOR * T1.QTDEPROD), P.NOMEPROD FROM PRODUTO P
left join TAB1 T1 on (T1.CODPROD = P.CODPROD)
group by P.NOMEPROD
assim funciona pra uma tabela, mas eu quero para as 2 tabelas saca!
tipo assim:
select sum(P.VALOR * T1.QTDEPROD), P.NOMEPROD FROM PRODUTO P
left join TAB1 T1 on (T1.CODPROD = P.CODPROD)
group by P.NOMEPROD
union all
select sum(P.VALOR * T2.QTDEPROD), P.NOMEPROD FROM PRODUTO P
left join TAB1 T2 on (T2.CODPROD = P.CODPROD)
group by P.NOMEPROD
O problema eh que assim ele repete o produto!!!
prod1 valor 10
prod2 valor 20
prod1 valor 30
e eu queria que ficasse somado junto prod1 com prod1 e etc.
algo assim:
select sum(P.VALOR * (T1.QTDEPROD + T2.QTDEPROD)), P.NOMEPROD FROM PRODUTOS P
left join TAB1 T1 ON (T1.CODPROD = P.CODPROD)
left join TAB2 T2 ON (T2.CODPROD = P.CODPROD)
group by P.NOMEPROD
o problema eh que assim nao da certo! ele traz uma soma invalida e em apenas um dos produtos listados e resto traz null!!
to usando Firebird 1.03 alguma coisa!!
sera que tem como fazer isso?? algum sum dentro de outro sum, com union ou sei la???
Fred
Curtir tópico
+ 0Posts
17/03/2005
Emerson Nascimento
select P.NOMEPROD, MAX(P.VALOR) * (COALESCE(SUM(T1.QTDEPROD),0) + COALESCE(SUM(T2.QTDEPROD),0)) VALORTOTAL, FROM PRODUTOS P left join TAB1 T1 ON (T1.CODPROD = P.CODPROD) left join TAB2 T2 ON (T2.CODPROD = P.CODPROD) group by P.NOMEPROD
Gostei + 0
17/03/2005
Fred
Gostei + 0
17/03/2005
Faelcavalcanti
Agora é o seguinte caso não consigas, tenta tipow fazer com duas queries, por exemplo: uma query tu fazia com a TAB1:
e a outra com a TAB2 tipow:
Eu sei que fica melhor jogar tudo em uma query só devido a componente por grupo e depois fazer o sincronismo. Mas pra não complicar não curto muito utilizar JOIN, não sei o lado benéfico que tanta gente usa principalmente para relatórios.
Espero ter ajudado!!!
Gostei + 0
17/03/2005
Emerson Nascimento
Gostei + 0
18/03/2005
Fred
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)