Fórum Select somando errado #511908
25/02/2015
0
Eu tenho uma tabela de VENDAS e outra de ITENS, então preciso somar a qtde vendida de cada produto, mas quanto eu utilizo a função SUM do firebird 2.5 está praticamente triplicando a qtde. Ainda não consegui entender o motivo já que estou usando o Group By em um campo só para agrupar os valores.
No primeiro SELECT eu fiz sem somar para verificar a qtde correta.
select distinct
pedidos_itens.prod_id,
pedidos_itens.pi_qtde
from pedidos
inner join pedidos_itens on (pedidos.ped_id = pedidos_itens.ped_id)
inner join produtos on (pedidos_itens.prod_id = produtos.prod_id)
where
pedidos.status = 1 and
pedidos.tipo_id < 5 and
pedidos.loj_id = :loja and
pedidos_itens.prod_id = pedidos_itens.prod_id and
cast(pedidos.data_emissao as date) between :dt_ini and :dt_fim and
pedidos_itens.prod_id in(4)Resultado do Select 1
[img:descricao=Resultado 01]http://arquivo.devmedia.com.br/forum/imagem/267272-20150225-102351.png[/img]
No Select 2, fiz o somatório onde esta alterando os valores.
select distinct
pedidos_itens.prod_id,
sum(pedidos_itens.pi_qtde)
from pedidos
inner join pedidos_itens on (pedidos.ped_id = pedidos_itens.ped_id)
where
pedidos.status = 1 and
pedidos.tipo_id < 5 and
pedidos.loj_id = :loja and
cast(pedidos.data_emissao as date) between :dt_ini and :dt_fim
group by pedidos_itens.prod_id
Resultado do Select 2
[img:descricao=Resultado do Select 2]http://arquivo.devmedia.com.br/forum/imagem/267272-20150225-102502.png[/img]
O Valor do somatório é para ser 216 e não 626. Alguém pode me ajudar?
Sidney Abreu
Curtir tópico
+ 0Posts
25/02/2015
Isaac Jose
mais o inner join pega tudo das duas tabelas
utilize o left join para ver se o resultado muda.
Gostei + 0
25/02/2015
Sidney Abreu
Gostei + 0
25/02/2015
Marcos P
Inserindo o segundo inner do primeiro select...
inner join produtos on (pedidos_itens.prod_id = produtos.prod_id)
No segundo select, o resultado muda ?
Gostei + 0
25/02/2015
Sidney Abreu
Gostei + 0
25/02/2015
Marcos P
Gostei + 0
25/02/2015
Marcos P
( pelo menos para testar )
Gostei + 0
25/02/2015
Marcos P
pedidos_itens.prod_id = pedidos_itens.prod_id and
Ela já está sendo usada no ON do INNER JOIN !
Gostei + 0
25/02/2015
Sidney Abreu
Gostei + 0
25/02/2015
Sidney Abreu
Gostei + 0
25/02/2015
Marcos P
Que bom que resolveu !
T+
Gostei + 0
25/02/2015
Sidney Abreu
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)