Consulta retornando valores divergentes
23/02/2020
0
Pessoal, tudo bem?
Estou com dúvida em uma consulta simples, já identifiquei o problema mas não sei como resolver rs
No exemplo a seguir quero consultar o volume, receita e ticket médio em cada um dos produtos vendidos.
Caso não inclua o "Item_cardapio", a consulta retorna um valor e quando incluo retorna outro.
Olhando para o mês de janeiro que puxei aqui, o volume total deveria ser 68 produtos vendidos, quando incluído o "Item_cardapio" esse número passa a ser 138 (68 pedidos reais + 70 pedidos com contagem duplicada + 2 pedidos cancelados), mesmo tendo feito a contagem distinta.
Como posso incluir o nome de cada item e fazer com que a contagem seja distinta?
Valeu!
select
date_trunc('month',o.order_date_local) Mes
,i.item_description Item_cardapio
,count(distinct o.order_number) Volume
,sum (i.item_total_price_portal) Receita
,round(sum (i.item_total_price_portal)/count(distinct o.order_number),2) Ticket_medio
from order_curated.orders o
join order_curated.items i
on o.order_number = i.order_number
and o.frn_id = i.frn_id
where
o.frn_id = 'xpto00'
and o.order_date_local >= '2019-08-01'
and o.order_date_local <= '2020-01-31'
and o.last_status = 'CONCLUDED'
group by
1,2
Estou com dúvida em uma consulta simples, já identifiquei o problema mas não sei como resolver rs
No exemplo a seguir quero consultar o volume, receita e ticket médio em cada um dos produtos vendidos.
Caso não inclua o "Item_cardapio", a consulta retorna um valor e quando incluo retorna outro.
Olhando para o mês de janeiro que puxei aqui, o volume total deveria ser 68 produtos vendidos, quando incluído o "Item_cardapio" esse número passa a ser 138 (68 pedidos reais + 70 pedidos com contagem duplicada + 2 pedidos cancelados), mesmo tendo feito a contagem distinta.
Como posso incluir o nome de cada item e fazer com que a contagem seja distinta?
Valeu!
select
date_trunc('month',o.order_date_local) Mes
,i.item_description Item_cardapio
,count(distinct o.order_number) Volume
,sum (i.item_total_price_portal) Receita
,round(sum (i.item_total_price_portal)/count(distinct o.order_number),2) Ticket_medio
from order_curated.orders o
join order_curated.items i
on o.order_number = i.order_number
and o.frn_id = i.frn_id
where
o.frn_id = 'xpto00'
and o.order_date_local >= '2019-08-01'
and o.order_date_local <= '2020-01-31'
and o.last_status = 'CONCLUDED'
group by
1,2
Marcos
Curtir tópico
+ 0
Responder
Posts
26/02/2020
Anderson Gonçalves
Pessoal, tudo bem?
Estou com dúvida em uma consulta simples, já identifiquei o problema mas não sei como resolver rs
No exemplo a seguir quero consultar o volume, receita e ticket médio em cada um dos produtos vendidos.
Caso não inclua o "Item_cardapio", a consulta retorna um valor e quando incluo retorna outro.
Olhando para o mês de janeiro que puxei aqui, o volume total deveria ser 68 produtos vendidos, quando incluído o "Item_cardapio" esse número passa a ser 138 (68 pedidos reais + 70 pedidos com contagem duplicada + 2 pedidos cancelados), mesmo tendo feito a contagem distinta.
Como posso incluir o nome de cada item e fazer com que a contagem seja distinta?
Valeu!
select
date_trunc('month',o.order_date_local) Mes
,i.item_description Item_cardapio
,count(distinct o.order_number) Volume
,sum (i.item_total_price_portal) Receita
,round(sum (i.item_total_price_portal)/count(distinct o.order_number),2) Ticket_medio
from order_curated.orders o
join order_curated.items i
on o.order_number = i.order_number
and o.frn_id = i.frn_id
where
o.frn_id = 'xpto00'
and o.order_date_local >= '2019-08-01'
and o.order_date_local <= '2020-01-31'
and o.last_status = 'CONCLUDED'
group by
1,2
Estou com dúvida em uma consulta simples, já identifiquei o problema mas não sei como resolver rs
No exemplo a seguir quero consultar o volume, receita e ticket médio em cada um dos produtos vendidos.
Caso não inclua o "Item_cardapio", a consulta retorna um valor e quando incluo retorna outro.
Olhando para o mês de janeiro que puxei aqui, o volume total deveria ser 68 produtos vendidos, quando incluído o "Item_cardapio" esse número passa a ser 138 (68 pedidos reais + 70 pedidos com contagem duplicada + 2 pedidos cancelados), mesmo tendo feito a contagem distinta.
Como posso incluir o nome de cada item e fazer com que a contagem seja distinta?
Valeu!
select
date_trunc('month',o.order_date_local) Mes
,i.item_description Item_cardapio
,count(distinct o.order_number) Volume
,sum (i.item_total_price_portal) Receita
,round(sum (i.item_total_price_portal)/count(distinct o.order_number),2) Ticket_medio
from order_curated.orders o
join order_curated.items i
on o.order_number = i.order_number
and o.frn_id = i.frn_id
where
o.frn_id = 'xpto00'
and o.order_date_local >= '2019-08-01'
and o.order_date_local <= '2020-01-31'
and o.last_status = 'CONCLUDED'
group by
1,2
Amigo me informa qual o teu banco de dados por favor.
Depois entra em contato comigo para eu te ajudar, to vendo algumas coisas que podem melhorar no seu código, por exemplo utilize a função BETWEEN para comparação de intervalos, no caso das datas que você está querendo verificar.
Select * from TABELA
where DATA between :INICIO AND :FINAL
Fora isso tem mais coisas então melhor você entrar em contato comigo.
Skype: anderson@case13.com.br
Responder
Clique aqui para fazer login e interagir na Comunidade :)