Select Pedido e Itens
Preciso de uma ajuda. Aparentemente o problema é bem simples e sempre acabo resolvendo de outra forma.
Tabela de Pedidos e Itens. O campo que preciso retornar esta na tabela de itens( sum(quantidade) ) que é o problema.
No momento em que se faz o JOIN com Itens como ele passa varias vezes pelos itens os valores ficam errados.
select
a.emissao,
sum(a.TOTAL) VALOR,
count(*) as VENDAS,
avg(a.TOTAL) MEDIA_CLIENTES,
sum(p.quantidade) as itens
from PEDIDOS a
join ITENS p on p.vda001 = a.vda001 and p.emp001 = a.emp001
where (a.emissao >= ''01.10.2022'' and a.emissao <= ''01.10.2022'')
group by 1
Firebird 2.5
Tabela de Pedidos e Itens. O campo que preciso retornar esta na tabela de itens( sum(quantidade) ) que é o problema.
No momento em que se faz o JOIN com Itens como ele passa varias vezes pelos itens os valores ficam errados.
select
a.emissao,
sum(a.TOTAL) VALOR,
count(*) as VENDAS,
avg(a.TOTAL) MEDIA_CLIENTES,
sum(p.quantidade) as itens
from PEDIDOS a
join ITENS p on p.vda001 = a.vda001 and p.emp001 = a.emp001
where (a.emissao >= ''01.10.2022'' and a.emissao <= ''01.10.2022'')
group by 1
Firebird 2.5
Fernando Malta
Curtidas 0
Respostas
Emerson Nascimento
14/12/2022
faça a soma dos valores dos itens.
select a.emissao, sum(p.vlrunitario * p.quantidade) VALOR, count(*) as VENDAS, sum(p.vlrunitario * p.quantidade) / count(distinct a.codcliente) MEDIA_CLIENTES, sum(p.quantidade) as itens from PEDIDOS a join ITENS p on p.vda001 = a.vda001 and p.emp001 = a.emp001 where a.emissao between '01.10.2022' and '01.10.2022' group by a.emissao
GOSTEI 0
Fernando Malta
14/12/2022
faça a soma dos valores dos itens.
select a.emissao, sum(p.vlrunitario * p.quantidade) VALOR, count(*) as VENDAS, sum(p.vlrunitario * p.quantidade) / count(distinct a.codcliente) MEDIA_CLIENTES, sum(p.quantidade) as itens from PEDIDOS a join ITENS p on p.vda001 = a.vda001 and p.emp001 = a.emp001 where a.emissao between '01.10.2022' and '01.10.2022' group by a.emissao
Fiz uma pequena alteração, mas seria isso msm.
select
a.emissao,
sum(p.liquido) VALOR,
count(distinct a.vda001) as VENDAS,
sum(p.liquido) / count(distinct a.vda001) MEDIA_CLIENTES,
sum(p.quantidade) as qtd_vendida,
sum(p.quantidade) / count(distinct a.vda001) as media_itens,
count(*) itens
from
vda_vda001 a
join vda_vda002 p
on p.vda001 = a.vda001
and p.emp001 = a.emp001
where
a.emissao between '01.10.2022' and '01.10.2022'
and a.situacao = 'C'
group by
a.emissao
Grato pela atenção. Resolvido
GOSTEI 0