none
Gerando Gráficos

    Pergunta

  • Galera, preciso de uma forcinha... Quero criar uma consulta que, através das datas de registro, consiga contabilizar os cadastros por dia. Através disso eu vou gerar um gráfico.

    Não tenho certeza se consegui ser muito claro... A consulta que eu quero fazer deverá ter os dias do mês como colunas, e o resultado seria a quantidade de cadastros por dia. Os parâmetros são mês e ano.

    Obrigado

    quinta-feira, 15 de março de 2012 20:27

Respostas

  • Boa tarde MarconesSP,

    O que você tem é uma tabela onde possui  um campo DataCadastro é isso?

    E recebendo mês e ano quer algo como

    DIA     TOTAL_CADASTROS
    01        10
    02        1
    03        24
    ....
    31        20

    Se for isso, no SELECT use o COUNT. Coloque no WHERE seu intervalo de datas, de acordo com os parâmetros que recebeu e utilize a cláusula GROUP BY por dia.

    Segue exemplo com uma tabela temporária.

    CREATE TABLE #tmp
    (
    	DataCadastro SMALLDATETIME,
    	Nome VARCHAR(100)
    )
    INSERT INTO #TMP
    SELECT '2012-01-10', 'A'
    INSERT INTO #TMP
    SELECT '2012-01-10', 'B'
    INSERT INTO #TMP
    SELECT '2012-03-30', 'C'
    INSERT INTO #TMP
    SELECT '2012-04-20', 'D'
    SELECT DATEPART(DD, DataCadastro), COUNT(Nome)
    FROM #tmp
    WHERE DataCadastro >= '2012-01-01'
    AND DataCadastro <= '2012-04-30'
    GROUP BY  DATEPART(DD, DataCadastro)

    O resultado dessa query são os dias 10, 20 e 30 contendo 2, 1 e 1 cadastros respectivamente.


    Espero ter ajudado.

    []'s


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta MarconesSP quinta-feira, 15 de março de 2012 20:54
    quinta-feira, 15 de março de 2012 20:45

Todas as Respostas

  • Boa tarde MarconesSP,

    O que você tem é uma tabela onde possui  um campo DataCadastro é isso?

    E recebendo mês e ano quer algo como

    DIA     TOTAL_CADASTROS
    01        10
    02        1
    03        24
    ....
    31        20

    Se for isso, no SELECT use o COUNT. Coloque no WHERE seu intervalo de datas, de acordo com os parâmetros que recebeu e utilize a cláusula GROUP BY por dia.

    Segue exemplo com uma tabela temporária.

    CREATE TABLE #tmp
    (
    	DataCadastro SMALLDATETIME,
    	Nome VARCHAR(100)
    )
    INSERT INTO #TMP
    SELECT '2012-01-10', 'A'
    INSERT INTO #TMP
    SELECT '2012-01-10', 'B'
    INSERT INTO #TMP
    SELECT '2012-03-30', 'C'
    INSERT INTO #TMP
    SELECT '2012-04-20', 'D'
    SELECT DATEPART(DD, DataCadastro), COUNT(Nome)
    FROM #tmp
    WHERE DataCadastro >= '2012-01-01'
    AND DataCadastro <= '2012-04-30'
    GROUP BY  DATEPART(DD, DataCadastro)

    O resultado dessa query são os dias 10, 20 e 30 contendo 2, 1 e 1 cadastros respectivamente.


    Espero ter ajudado.

    []'s


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta MarconesSP quinta-feira, 15 de março de 2012 20:54
    quinta-feira, 15 de março de 2012 20:45
  • Na mosca, Mariana!

    Muito obrigado,

    Abs

    quinta-feira, 15 de março de 2012 20:54