Andei meio afastado do mundo de PL/SQL e estou retomando agora para desenvolver alguns indicadores para um cliente, ocorre que na minha query, mesmo eu colocando o group by corretamente, me é apresentado o erro ORA-00937, já fiz de tudo e não consigo resolver. Poderiam me auxiliar por gentileza?
A ideia é que a query retorne a evolução mensal do ano, com quebra pelo mês e e pela informação de que se existe ou não avaliação da equipe de enfermagem.
Segue código abaixo.
SELECT TO_CHAR(a.dt_inicio_real,'mm') dt_cirurgia,
DECODE(obter_se_atend_sae(a.nr_atendimento),'S','Com SAE','N','Sem SAE',NULL) ds_possui_sae,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 1, COUNT(a.nr_cirurgia), 0)) vl_janeiro,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 2, COUNT(1), 0)) vl_fevereiro,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 3, COUNT(1), 0)) vl_marco,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 4, COUNT(1), 0)) vl_abril,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 5, COUNT(1), 0)) vl_maio,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 6, COUNT(1), 0)) vl_junho,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 7, COUNT(1), 0)) vl_julho,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 8, COUNT(1), 0)) vl_agosto,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 9, COUNT(1), 0)) vl_setembro,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 10, COUNT(1), 0)) vl_outubro,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 11, COUNT(1), 0)) vl_novembro,
SUM(DECODE(to_number(TO_CHAR(a.dt_inicio_real, 'mm')), 12, COUNT(1), 0)) vl_dezembro
FROM cirurgia a
GROUP BY TO_CHAR(a.dt_inicio_real,'mm'),
DECODE(obter_se_atend_sae(a.nr_atendimento),'S','Com SAE','N','Sem SAE',NULL)
E este é o erro apresentado.
ORA-00937: não é uma função de grupo de grupo simples
00937. 00000 - "not a single-group group function"
*Cause:
*Action:
Erro na linha: 1 Coluna: 16