none
SQL - QUERY RRS feed

  • Pergunta

  • Alguem pode me ajudar, preciso que este codigo me retorne  os meses agrupados com o total na frente, porem não consigo fazer isso exibe varias vezes o mesmo mes...


    SELECT AA._GRUPO ,AAC._SITUACAO_AGENDA_CONCLUSAO, to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY') 
    AS MES_ANO,COUNT(AAC._SITUACAO_AGENDA_CONCLUSAO) AS Total, SAC.descricao 
    FROM AGENDA_ATENDIMENTO_CONCLUSAO AAC 
    INNER JOIN AGENDA_ATENDIMENTO AA 
    ON AAC._AGENDA_ATENDIMENTO = AA.ID 
    INNER JOIN SITUACAO_AGENDA_CONCLUSAO SAC 
    ON AAC._SITUACAO_AGENDA_CONCLUSAO = SAC.ID 
    WHERE (AAC.DATA_ATENDIMENTO >'02/04/2013 15:38:56')
    AND (AAC._SITUACAO_AGENDA_CONCLUSAO = 1)
    AND (AA._GRUPO = 121)
    GROUP BY mes_ano, aa._grupo,aac._situacao_agenda_conclusao,sac.descricao,aac.data_atendimento
    ORDER BY AAC.DATA_ATENDIMENTO, total 


    Ricardo Fagmer

    segunda-feira, 2 de dezembro de 2013 19:43

Respostas

  • Tente isso:

    SELECT to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY') 
    AS MES_ANO,COUNT(AAC._SITUACAO_AGENDA_CONCLUSAO) AS Total
    FROM AGENDA_ATENDIMENTO_CONCLUSAO AAC 
    INNER JOIN AGENDA_ATENDIMENTO AA 
    ON AAC._AGENDA_ATENDIMENTO = AA.ID 
    INNER JOIN SITUACAO_AGENDA_CONCLUSAO SAC 
    ON AAC._SITUACAO_AGENDA_CONCLUSAO = SAC.ID 
    WHERE (AAC.DATA_ATENDIMENTO >'02/04/2013 15:38:56')
    AND (AAC._SITUACAO_AGENDA_CONCLUSAO = 1)
    AND (AA._GRUPO = 121)
    GROUP BY to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY')
    ORDER BY to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY'), total 


    Carlos Eduardo Ferreira

    • Marcado como Resposta Ricardo Fagmer quarta-feira, 4 de dezembro de 2013 12:44
    terça-feira, 3 de dezembro de 2013 19:04

Todas as Respostas

  • Ricardo,

    Você quer exibir somente os meses e o total, certo?! Se for isso você precisa agrupar somente pelo mês.

    Tente isso:

    SELECT to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY') 
    AS MES_ANO,COUNT(AAC._SITUACAO_AGENDA_CONCLUSAO) AS Total
    FROM AGENDA_ATENDIMENTO_CONCLUSAO AAC 
    INNER JOIN AGENDA_ATENDIMENTO AA 
    ON AAC._AGENDA_ATENDIMENTO = AA.ID 
    INNER JOIN SITUACAO_AGENDA_CONCLUSAO SAC 
    ON AAC._SITUACAO_AGENDA_CONCLUSAO = SAC.ID 
    WHERE (AAC.DATA_ATENDIMENTO >'02/04/2013 15:38:56')
    AND (AAC._SITUACAO_AGENDA_CONCLUSAO = 1)
    AND (AA._GRUPO = 121)
    GROUP BY mes_ano
    ORDER BY mes_ano, total 


    Carlos Eduardo Ferreira

    terça-feira, 3 de dezembro de 2013 16:49
  • Mas o sql não permite diz que tenho que agrupar pelos campos na clausula "WHERE"

    Ricardo Fagmer

    terça-feira, 3 de dezembro de 2013 18:51
  • Tente isso:

    SELECT to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY') 
    AS MES_ANO,COUNT(AAC._SITUACAO_AGENDA_CONCLUSAO) AS Total
    FROM AGENDA_ATENDIMENTO_CONCLUSAO AAC 
    INNER JOIN AGENDA_ATENDIMENTO AA 
    ON AAC._AGENDA_ATENDIMENTO = AA.ID 
    INNER JOIN SITUACAO_AGENDA_CONCLUSAO SAC 
    ON AAC._SITUACAO_AGENDA_CONCLUSAO = SAC.ID 
    WHERE (AAC.DATA_ATENDIMENTO >'02/04/2013 15:38:56')
    AND (AAC._SITUACAO_AGENDA_CONCLUSAO = 1)
    AND (AA._GRUPO = 121)
    GROUP BY to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY')
    ORDER BY to_char(AAC.DATA_ATENDIMENTO,'MM/YYYY'), total 


    Carlos Eduardo Ferreira

    • Marcado como Resposta Ricardo Fagmer quarta-feira, 4 de dezembro de 2013 12:44
    terça-feira, 3 de dezembro de 2013 19:04
  • ahaha isso mesmo Carlos, muito obrigado =D

    Ricardo Fagmer

    quarta-feira, 4 de dezembro de 2013 12:44