Relatório com data

09/03/2017

0

SQL

Pessoal, preciso criar um relatório que retorne igual ao modelo abaixo.

código | produto | valor 1 | quantidade 1 |valor 2| quantidade 2 |valor 3 | quantidade 3 |

valor 1 = 3 meses atrás

valor 2 = 6 meses atrás

valor 3 = 9 meses atras

Como ficaria meu select?
Marcos Souza

Marcos Souza

Responder

Posts

09/03/2017

David Styveen

Bom dia, Marcos Souza

Você pode usar a função DATEADD para comprar se a data utilizada é compatível com a sua análise.
select codigo, produto
          ,sum(case when data > dateadd('mm',-3,getdate() ) then valor else 0 end) valor1
          ,sum(case when data > dateadd('mm',-3,getdate() ) then 1 else 0 end) quantidade1
          ,sum(case when data > dateadd('mm',-6,getdate() ) then valor else 0 end) valor2
          ,sum(case when data > dateadd('mm',-6,getdate() ) then 1 else 0 end) quantidade2
          ,sum(case when data > dateadd('mm',-9,getdate() ) then valor else 0 end) valor3
          ,sum(case when data > dateadd('mm',-9,getdate() ) then 1 else 0 end) quantidade3
from tabela
group by codigo, produto


Qualquer dúvida estou a disposição.
Responder

09/03/2017

Marcos Souza

Como que ficaria ao invés de começar a contar a data atual ( getdate ), contar a data do dia anterior? Porque no dia de hoje os vendedores estão passando pedidos e eu não vou conseguir fechar um valor certo.
Responder

09/03/2017

David Styveen

Pode usar o mesmo conceito:

select codigo, produto
,sum(case when data > dateadd(''mm'',-3,dateadd(''dd'',-1,getdate()) ) then valor else 0 end) valor1
,sum(case when data > dateadd(''mm'',-3,dateadd(''dd'',-1,getdate()) ) then 1 else 0 end) quantidade1
,sum(case when data > dateadd(''mm'',-6,dateadd(''dd'',-1,getdate()) ) then valor else 0 end) valor2
,sum(case when data > dateadd(''mm'',-6,dateadd(''dd'',-1,getdate()) ) then 1 else 0 end) quantidade2
,sum(case when data > dateadd(''mm'',-9,dateadd(''dd'',-1,getdate()) ) then valor else 0 end) valor3
,sum(case when data > dateadd(''mm'',-9,dateadd(''dd'',-1,getdate()) ) then 1 else 0 end) quantidade3
from tabela
group by codigo, produto
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar