Fórum Duvida em SubConsulta SQL #205949
12/01/2004
0
Produtos
Entradas
Saídas
A tabela produtos possui os seguintes campos
Cod_Produto
Descricao_Produto
Valor_Produto
A tabela Entradas possui os seguintes campos
Cod_Entrada
Cod_Produto
Quant_Entrada
A tabela Saidas possui os seguintes campos
Cod_Saida
Cod_Produto
Quant_Saida
Agora preciso fazer uma consulta para exibir todos os produtos até mesmo aqueles que não possuem entradas ou saídas e exibir a soma das quantidades de entradas e soma das quantidades de saídas. A SQL abaixo faz a soma só que se possuir o mesmo produto com entradas e saídas ele soma a quantidade duas vezes.
Se alguém puder dizer-me o que está dando errado nesta sql ficarei muito grato.
Select Cod_Produto,
sum(I.Quant_Saida) as Saida, sum(E.Quant_Entrada) as Entrada from ((Produto P
left outer join Saida I on (P.Cod_Produto=I.Cod_Produto))
left outer join Entrada E on (P.Cod_Produto=E.Cod_Produto))
group by Cod_Produto;
João Silva
Curtir tópico
+ 0Posts
13/01/2004
João Silva
Gostei + 0
13/01/2004
João Silva
cod_Produto Descricao Preco
0000000001 CAFÉ PRETO 250G R$ 2,50
0000000002 ARROZ TIPO 1 R$ 10,50
0000000003 LEITE EM PÓ 200G R$ 5,00
Na tabela Entradas possuo os seguintes registros:
cod_entrada cod_Produto quantidade
01 0000000002 25
02 0000000003 10
01 0000000002 10
Na tabela Saidas possuo os seguintes registros:
cod_Saida cod_produto quantidade
01 0000000002 5
02 0000000003 7
quando faço a consulta o resultado é o seguinte:
cod_produto descrição Quant. Entrada Quant. Saida
0000000001 CAFÉ PRETO 250G 0 0
0000000002 ARROZ TIPO 1 35 10
0000000003 LEITE EM PÓ 200G 10 7
Neste resultado observa-se que o produto de código 2, ou seja o ARROZ TIPO 1 apresenta um erro na soma da quantidade que deveria ser 5 e está 10. Isso porque foi feita a soma duas vezes devido ao fato de existirem dois registro deste produto na tabela Entradas. Ai eu pergunto será que é possível resolver este problema na SQL abaixo:
Select P.Cod_Produto,
sum(I.Quant_Saida) as Saida,
sum(E.Quant_Entrada) as Entrada
from Produto P
left join Saida I on (I.Cod_Produto = P.Cod_Produto)
left join Entrada E on (E.Cod_Produto = P.Cod_Produto)
group by P.Cod_Produto
order by P.Cod_Produto
Gostei + 0
13/01/2004
E_marcello
Gostei + 0
13/01/2004
João Silva
Gostei + 0
13/01/2004
João Silva
Gostei + 0
13/01/2004
João Silva
SELECT P.Nr_Produto, P.Descricao,
(Select sum(ItemPed.Quantidade) From ItemPed Where ItemPed.Nr_Produto=P.Nr_Produto) Saida,
(Select sum(Entrada.Quantidade) From Entrada Where Entrada.Cod_Produto=P.Nr_Produto) Entrada
From Produto P
Order by p.Descricao
Gostei + 0
13/01/2004
João Silva
Select Nr_Produto,
sum(I.Quantidade) as Quant, sum(E.Quantidade) as Quant2 from ((Produto P left outer join ItemPed I on
(P.Nr_Produto=I.Nr_Produto))
left outer join Entrada E on
(P.Nr_Produto=E.Cod_Produto)) group by
Nr_Produto;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)