不能在UPDATE中使用聚合函数

时间:2018-04-27 05:40:13

标签: sql sql-update aggregate-functions

我的代码出错:

  

错误:无法在UPDATE中使用聚合函数

更新pre_project_code:

Update ttemp.TMP_KPIR_F_RT_DETAIL a
set pre_project_code = (
                        select tt.old_proj_cde 
                        from ttemp.TMP_KPIR_RT_BASE tt 
                        where tt.contr_id = a.contr_id 
                        and tt.row_number = 1
                       )
WHERE a.renew_type =  '專案異動' or a.row_number = MAX(a.row_number) 
;

编写此代码的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您没有指定您正在使用的数据库,但以下内容应该符合您的要求:

Update ttemp.TMP_KPIR_F_RT_DETAIL d
    set pre_project_code = (select b.old_proj_cde 
                            from ttemp.TMP_KPIR_RT_BASE b
                            where b.contr_id = d.contr_id and
                                  b.row_number = 1
                          )
    where d.renew_type =  '專案異動' or
          d.row_number = (select max(d2.row_number) from ttemp.TMP_KPIR_F_RT_DETAIL d2);