SELECT CASE WHEN TO_CHAR(SYSDATE,'yyyy')>MAX(PR_year) THEN (select 'ABCD'||TO_CHAR(SYSDATE,'yyyymm')||'001' FROM dual)ELSE (select 'ABCD'||(MAX(PR_year))||(MAX(SUBSTR(PR_ID, 10, 3))+001) from WR_ZHILIANG_PROJECT) ENDFROM WR_ZHILIANG_PROJECT
带max结尾得用group by 分组才行
有max应该有group by,这部分错了
分组要满足:所有字段都是group by后面的字段或者聚合函数或者静态值。
你是没有group by的全聚合,也就是必须全部是聚合函数或者静态值。
TO_CHAR(SYSDATE,'yyyy') 是静态值,MAX(PR_year) 是聚合函数。但是两个select子查询,不属于静态值也不属于聚合。。可以尝试用left join 然后引用