Fórum Ajuda em Consulta SQL - Retorno Agrupado #60457
04/02/2009
0
Olá,
Tenho 3 tabelas e gostaria de fazer um join das mesmas trazendo valores somados no resultado da consulta. Não estou conseguindo.
Se puder ajudar, agradeço.
Tabela PRODUTOS
Tem os campos: Código e descrição
Tabela MOVI_TERMIN_PRODS
Tem os campos: Produto, data e quantidade;
Tem os registros:
Produto Data Valor_Um
2 15/01/2009 3,00
Tabela MOVIESTOQUE
Tem os campos: Produto, data e quantidade;
Tem os registros:
Produto Data Valor_TRes
2 15/01/2009 4,00
2 16/01/2009 8,00
Preciso de uma consulta que me traga somados os campos Valor_Um e
Valor_Tres, agrupados (na mesma linha) pelo código do produto. O retorno
O retorno da consulta deve ser esse:
Produto Soma_Valor_Um Soma_Valor_Tres
2 3,00 12,00
Obrigado
Tenho 3 tabelas e gostaria de fazer um join das mesmas trazendo valores somados no resultado da consulta. Não estou conseguindo.
Se puder ajudar, agradeço.
Tabela PRODUTOS
Tem os campos: Código e descrição
Tabela MOVI_TERMIN_PRODS
Tem os campos: Produto, data e quantidade;
Tem os registros:
Produto Data Valor_Um
2 15/01/2009 3,00
Tabela MOVIESTOQUE
Tem os campos: Produto, data e quantidade;
Tem os registros:
Produto Data Valor_TRes
2 15/01/2009 4,00
2 16/01/2009 8,00
Preciso de uma consulta que me traga somados os campos Valor_Um e
Valor_Tres, agrupados (na mesma linha) pelo código do produto. O retorno
O retorno da consulta deve ser esse:
Produto Soma_Valor_Um Soma_Valor_Tres
2 3,00 12,00
Obrigado
Armindo
Curtir tópico
+ 0
Responder
Posts
05/02/2009
Leandro.cido
Boa noite, vc pode fazer mais ou menos assim:
SELECT dbo.tbproduto.produto, SUM(dbo.tbmovi_termin_prods.valor_um) AS valor_um, SUM(dbo.tbmoviestoque.valor_tres) AS valor_tres
FROM dbo.tbmovi_termin_prods INNER JOIN
dbo.tbproduto ON dbo.tbmovi_termin_prods.codproduto = dbo.tbproduto.codigo INNER JOIN
dbo.tbmoviestoque ON dbo.tbproduto.codigo = dbo.tbmoviestoque.codproduto
GROUP BY dbo.tbproduto.produto
SELECT dbo.tbproduto.produto, SUM(dbo.tbmovi_termin_prods.valor_um) AS valor_um, SUM(dbo.tbmoviestoque.valor_tres) AS valor_tres
FROM dbo.tbmovi_termin_prods INNER JOIN
dbo.tbproduto ON dbo.tbmovi_termin_prods.codproduto = dbo.tbproduto.codigo INNER JOIN
dbo.tbmoviestoque ON dbo.tbproduto.codigo = dbo.tbmoviestoque.codproduto
GROUP BY dbo.tbproduto.produto
Responder
Gostei + 0
05/02/2009
Armindo
Boa noite, vc pode fazer mais ou menos assim:
SELECT dbo.tbproduto.produto, SUM(dbo.tbmovi_termin_prods.valor_um) AS valor_um, SUM(dbo.tbmoviestoque.valor_tres) AS valor_tres
FROM dbo.tbmovi_termin_prods INNER JOIN
dbo.tbproduto ON dbo.tbmovi_termin_prods.codproduto = dbo.tbproduto.codigo INNER JOIN
dbo.tbmoviestoque ON dbo.tbproduto.codigo = dbo.tbmoviestoque.codproduto
GROUP BY dbo.tbproduto.produto
O problema é justamente esse colega.
Se eu fizer um join, ele será das [b:e8e2dbcce3]três[/b:e8e2dbcce3] tabelas. Aí o resutado ficaria assim:
O retorno da consulta deve ser esse:
Produto Soma_Valor_Um Soma_Valor_Tres
2 6,00 12,00
Ou seja, o Soma_Valor_Um somará o Valor_Um tantas vezes quantas forem a quantidade de registros encontratodos. Como na tabela MOVIESTOQUE ele ocorre duas vezes, o Valor_Um será somado duas vezes.
Obrigado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)