none
Consultas agrupadas por dia / mês / Ano RRS feed

  • 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

    segunda-feira, 12 de maio de 2014 14:25

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
    segunda-feira, 12 de maio de 2014 14:50

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
    segunda-feira, 12 de maio de 2014 14:50
  • Perfeito Amigo,

    Era exatamente isso que eu precisava.

    Obrigado
    segunda-feira, 12 de maio de 2014 17:00