Retorno de máximo em SQL

Galera, tenho um SQL que retorna isso:

image

Com essa query:

SELECT t1.ID AS a1, t1.META AS a2, t1.TIPO AS a3, t1.ID_OBRAS AS a4, t2.EXECUTADO AS a5 FROM OBRAS t0, OBRAS_AV_FISICO_META t1, OBRAS_AV_FISICO_EXC t2 WHERE ((1 = 1) AND (t0.ID = t1.ID_OBRAS) AND (t1.ID = t2.ID_OBRAS_AV_FISICO_META)) ORDER BY t0.TITULO;

Porém eu quero retornar apenas as linhas do máximo do A5, as linhas com valores 479 e 300, mas quando dou o MAX no A5 reclama que é uma expressão GROUP BY, só que ao inferir o GROUP BY já é retornado que NÃO é uma expressão GROUP BY.

a junção de produto cartesiano é realmente necessária?

Não existe junção de produto cartesiano,

OBRAS 1:n OBRAS_AV_FISICO_META
OBRAS_AV_FISICO_META 1:n OBRAS_AV_FISICO_EXC

isso é produto cartesiano

INNER JOIN OBRAS_AV_FISICO_META t1 ON t0.id = t1.id

isso seria uma junção normal

Ah sim, desculpe

Entre OBRAS 1:n OBRAS_AV_FISICO_META é necessário, mas entre OBRAS_AV_FISICO_META 1:n OBRAS_AV_FISICO_EXC não

SELECT t0.titulo as a0, 
       t1.ID AS a1, 
       t1.META AS a2, 
       t1.TIPO AS a3,
       t1.ID_OBRAS AS a4, 
       max(t2.EXECUTADO) AS a5 
  FROM OBRAS t0, 
       OBRAS_AV_FISICO_META t1, 
       OBRAS_AV_FISICO_EXC t2 
 WHERE t0.ID = t1.ID_OBRAS 
   AND t1.ID = t2.ID_OBRAS_AV_FISICO_META 
 GROUP BY t0.titulo, t1.id, t1.meta, t1.tipo, t1.id_obras
 ORDER BY t0.TITULO;
1 curtida

Muito obrigado,

E pensar que passei horas nisso porque faltava o t0.titulo…