не может использовать агрегатную функцию в ОБНОВЛЕНИИ - PullRequest
0 голосов
/ 27 апреля 2018

Я получаю ошибку в своем коде:

ОШИБКА: невозможно использовать функцию агрегирования в ОБНОВЛЕНИИ

обновить 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 голосов
/ 27 апреля 2018

Вы не указываете, какую базу данных вы используете, но следующее должно делать то, что вы хотите:

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);
...