(RESOLVIDO) Subtração data atual - Oracle

Bom dia pessoal a minha duvida é a seguinte, quando eu realizo uma subtração na data atual(sysdate) ali antes do from, esta realizando a subtração certinho, mas quando eu realizo na clausula where esta dando erro.

SELECT (TO_DATE((SYSDATE), 'dd/mm/yyyy') - TO_DATE((max(DATA_CUMPRIMENTO)),'dd/mm/yyyy')) AS DIFF, max(DATA_CUMPRIMENTO), TO_DATE((SYSDATE), 'dd/mm/yyyy') FROM D_PROCESSO_EVENTO GROUP BY ID_PROCESSO

Resultado:

code (null) 29/05/0012 00:00:00
90 29/02/2012 00:00:00 29/05/0012 00:00:00
19 10/05/2012 00:00:00 29/05/0012 00:00:00 [/code]

Com clausula where:

SELECT (TO_DATE((SYSDATE), 'dd/mm/yyyy') - TO_DATE((max(DATA_CUMPRIMENTO)),'dd/mm/yyyy')) AS DIFF, max(DATA_CUMPRIMENTO), TO_DATE((SYSDATE), 'dd/mm/yyyy') FROM D_PROCESSO_EVENTO WHERE TRUNC(TO_DATE((SYSDATE), 'dd/mm/yyyy') - TO_DATE((max(DATA_CUMPRIMENTO)),'dd/mm/yyyy')) = TRUNC(1) GROUP BY ID_PROCESSO

Erro:

Desde já agradeço…

Por que é uma função de grupo.
Tente trocar isto por um select onde a única consulta seja a subtração da data.

[quote=drsmachado]Por que é uma função de grupo.
Tente trocar isto por um select onde a única consulta seja a subtração da data.[/quote]

Ai amigo na real teria que ser assim o select:

SELECT ID_PROCESSO FROM D_PROCESSO_EVENTO WHERE TRUNC(TO_DATE((SYSDATE), 'dd/mm/yyyy') - TO_DATE((SELECT max(DATA_CUMPRIMENTO) FROM D_PROCESSO_EVENTO GROUP BY ID_PROCESSO),'dd/mm/yyyy')) = TRUNC(1)

Pq o processo tem varios eventos e eu tenho que pegar o maior DATA_CUMPRIMENTO subtrair da data atual e depois comparar ali no WHERE…
mais só que esse select ai esta gerando este erro:

Esta retornando mais de uma linha naquela query que foi colocado o GROUP BY

Se é uma função de grupo, deves colocar a restrição depois do group by

...
GROUP BY ID_PROCESSO  
HAVING TRUNC(TO_DATE((SYSDATE), 'dd/mm/yyyy') - TO_DATE((max(DATA_CUMPRIMENTO)),'dd/mm/yyyy')) = TRUNC(1)   

[quote=pmlm]Se é uma função de grupo, deves colocar a restrição depois do group by

... GROUP BY ID_PROCESSO HAVING TRUNC(TO_DATE((SYSDATE), 'dd/mm/yyyy') - TO_DATE((max(DATA_CUMPRIMENTO)),'dd/mm/yyyy')) = TRUNC(1) [/quote]

Era isso msm eu tinha que agrupar antes de fazer a filtragem.
valeu!!!