Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, alguém poderia me informar onde está o erro dessa consulta?
SELECT DISTINCT relatorio.CD_RELATORIO,
relatorio.DT_ATUALIZACAO,
relatorio.DS_TITULO descricao,
obter_usuario_pf(relatorio_documentacao.CD_PF_SOLIC) Solicitante,
obter_usuario_pf(relatorio_documentacao.CD_PF_CRIADOR) Criador,
wm_concat(perfil.ds_perfil) Perfil
FROM relatorio
INNER JOIN relatorio_documentacao
ON relatorio.NM_USUARIO = relatorio_documentacao.NM_USUARIO
INNER JOIN relatorio_perfil
ON relatorio_documentacao.NR_SEQ_RELATORIO = relatorio_perfil.NR_SEQ_RELATORIO
INNER JOIN PERFIL
ON relatorio_perfil.cd_perfil = perfil.cd_perfil
WHERE obter_usuario_pf(relatorio_documentacao.CD_PF_SOLIC) IS NOT NULL
AND obter_usuario_pf(relatorio_documentacao.CD_PF_CRIADOR) IS NOT NULL
AND relatorio.DT_ATUALIZACAO BETWEEN :dt_inicio AND :dt_fim
GROUP BY perfil.ds_perfil,
relatorio.CD_RELATORIO,
relatorio.DT_ATUALIZACAO,
relatorio.DS_TITULO
ORDER BY 4,2,1
Ele está dando o erro: ORA-00979: não é uma expressão GROUP BY.
Obrigado desde já!
Não é preciso o "group by" pois não é sql agregadora (sum,count,max etc) , caso seja todas as colunas do select (menos a de grupo) devem estar no group by.
O "distinct" dispinsa o group by.
exemplo
FROM relatorio ... GROUP BY relatorio.CD_RELATORIO, relatorio.DT_ATUALIZACAO, relatorio.DS_TITULO , obter_usuario_pf(relatorio_documentacao.CD_PF_SOLIC) , obter_usuario_pf(relatorio_documentacao.CD_PF_CRIADOR) , wm_concat(perfil.ds_perfil) ORDER BY 4,2,1