Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
bom dia pessoal, to com um probleminha e peço ajuda de vocês.
a select a seguir tem q trazer a qtd de vendas de um vendedor, valor total, itens devolvidos e valor total de itens devolvidos,
a qtd de vendas e qtd de itens devolvidos esta trazendo certo, mas os valores das vendas e itens devolvidos esta trazendo o dobro do que é de fato.
select
count(distinct v.codvenda)qtde_venda,
sum(itemvenda.vl_unitario * itemvenda.qtde ) VL_TOTAL,
count(distinct devolucao_item_venda.cod_produto)qtde_itens_dev,
sum(devolucao_item_venda.qtde * itemvenda.vl_unitario ) valor_dev,
u.nome vendedor
--devolucao_item_venda.qtde * itemvenda.vl_unitario
--itemvenda.vl_unitario * itemvenda.qtde
from
DEVOLUCAO_ITEM_VENDA DI
join DEVOLUCAO_VENDA DV on (DI.cod_devolucao = DV.cod_devolucao)
join VENDAS V on (DV.codvenda = V.codvenda)
join itemvenda IV on (iv.codvenda = v.codvenda)
join usuario u on (vendas.usuario_id = usuario.usuario_id)
where
DV.dt_devolucao between '01.02.2007' and '29.02.2008'
and vendas.codvenda = 184246
and v.usuario_id = 107
group by u.nome
a venda 184246 tem dois itens devolvidos cada um com valor de 8,50 deveria trazer 17,00 como valor total, mas traz 34,00.
o banco é o firebird
acho q estou errando algo mas não achei o q.
vlw
opa beleza?
existem sim a necessidade do sum, pois é pra trazer o valor total dos itens devolvidos,e não linha por linha,
nesta query eu estou filtrando por uma venda: and vendas.codvenda = 184246, para testar o resultado
mas no relatório não será, pois o relatório conterá a qtd de todas as vendas de um vendedor, valor total das vendas, qtd de itens devolvidos e valor total devolução, tudo dentro de um periodo.
então será filtrado pelo vendedor e periodo selecionado.
Esta área é um pouco complicada pois não temos o banco para poder testar, mas vamos tentando ;) .
Normalmente quando tenho ese tipo de problema o primeiro passo a verificar é se os joins estão corretos, é muito comum caso algum join esteja errado duplicar valores de equações, ou até mesmo registros. De uma verificada.
Abraços...
Nesta linha:
sum(devolucao_item_venda.qtde * itemvenda.vl_unitario ) valor_dev
, existe a necessidade desse SUM?
Abraços...