不是单组的分组函数?

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

图片.png

用户kWEye3931 发布于 2021-5-8 16:14
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
liboyu420949524Lv5中级互助
发布于2021-5-8 16:19

带max结尾得用group by 分组才行image.png

最佳回答
0
Kevin-sLv7中级互助
发布于2021-5-8 16:20

有max应该有group by,这部分错了

最佳回答
0
shirokoLv6资深互助
发布于2021-5-8 16:23

分组要满足:所有字段都是group by后面的字段或者聚合函数或者静态值。

你是没有group by的全聚合,也就是必须全部是聚合函数或者静态值。

TO_CHAR(SYSDATE,'yyyy') 是静态值,MAX(PR_year) 是聚合函数。但是两个select子查询,不属于静态值也不属于聚合。。可以尝试用left join 然后引用

  • 4关注人数
  • 497浏览人数
  • 最后回答于:2021-5-8 16:23
    请选择关闭问题的原因
    确定 取消
    返回顶部