Usuário com melhor resposta
Consultas agrupadas por dia / mês / Ano

Pergunta
-
Pessoal, bom dia.
Iremos gerar um gráfico de vendas e o cliente pode selecionar o agrupamento por dia, mês ou ano.
Queria saber se vocês sabem alguma maneira prática de fazer isso pois eu só sei fazer isso manipulando a query como um todo dinamicamente e depois dando um exec da string, dentro da stp.
Obrigado
Respostas
-
Bom dia,
Não sei se entendi corretamente, mas experimente fazer um teste mais ou menos dessa forma:
SELECT case @TipoPeriodo when 'A' then DATEADD(YEAR, DATEDIFF(YEAR, 0, ColunaData), 0) when 'M' then DATEADD(MONTH, DATEDIFF(MONTH, 0, ColunaData), 0) else ColunaData end as Data, SUM(Valor) as Total FROM Tabela group by case @TipoPeriodo when 'A' then DATEADD(YEAR, DATEDIFF(YEAR, 0, ColunaData), 0) when 'M' then DATEADD(MONTH, DATEDIFF(MONTH, 0, ColunaData), 0) else ColunaData end
Onde @TipoPeriodo seria um parâmetro para indicar se os valores devem ser agrupados por Ano ('A'), Mes ('M') ou Dia ('D').
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Rafael Metring segunda-feira, 12 de maio de 2014 16:59
Todas as Respostas
-
Bom dia,
Não sei se entendi corretamente, mas experimente fazer um teste mais ou menos dessa forma:
SELECT case @TipoPeriodo when 'A' then DATEADD(YEAR, DATEDIFF(YEAR, 0, ColunaData), 0) when 'M' then DATEADD(MONTH, DATEDIFF(MONTH, 0, ColunaData), 0) else ColunaData end as Data, SUM(Valor) as Total FROM Tabela group by case @TipoPeriodo when 'A' then DATEADD(YEAR, DATEDIFF(YEAR, 0, ColunaData), 0) when 'M' then DATEADD(MONTH, DATEDIFF(MONTH, 0, ColunaData), 0) else ColunaData end
Onde @TipoPeriodo seria um parâmetro para indicar se os valores devem ser agrupados por Ano ('A'), Mes ('M') ou Dia ('D').
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Rafael Metring segunda-feira, 12 de maio de 2014 16:59
-