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