Получаю ошибку SQL-запрос на обновление одной таблицы из двух таблиц
обновление одной таблицы из двух записей таблиц
поскольку я использую базу данных ingres.
Линия E_US0B70 1, агрегатные функции "Макс" не разрешено в данном контексте.
table_one, table_two и table_three
в table_one мне нужно обновить два столбца "дата" в качестве aprl_to_dt запросов и aprl_fr_dt
где aprl_to_dt из table_two в качестве столбца и aprl_fr_dt из table_three
поскольку записи дублируются, поэтому при необходимости Макс даты должен быть обновлен в table_one
Что я уже пробовал:
я уже пробовал
update table_one a from table_two b , table_three c set a.aprl_to_dt= b.aprl_fr_dt1, a.aprl_fr_dt = max(c.aprl_entdt) where b.aprl_cmpcd='01' and b.aprl_flag='CNF' and b.aprl_status='ECNF' and (b.aprl_fr_dt1 is not null or b.aprl_fr_dt1 !='') and b.aprl_cmpcd =a.aprl_cmpcd and b.aprl_flag=a.aprl_flag and b.aprl_status = a.aprl_status and b.aprl_empcd= a.aprl_empcd and b.aprl_due_dt = a.aprl_due_dt and b.aprl_empcd = c.aprl_empcd and b.aprl_cmpcd = c.aprl_cmpcd and b.aprl_due_dt = c.aprl_incdue group by b.aprl_empcd, b.aprl_fr_dt1, b.aprl_to_dt1;
я тоже пытался
update table_one a from table_two b set a.aprl_to_dt= b.aprl_fr_dt1, a.aprl_fr_dt in (select max(c.aprl_entdt) from table_three c where b.aprl_empcd = c.aprl_empcd and b.aprl_cmpcd = c.aprl_cmpcd and b.aprl_due_dt = c.aprl_incdue group by b.aprl_empcd, b.aprl_fr_dt1, b.aprl_to_dt1) where b.aprl_cmpcd='01' and b.aprl_flag='CPL' and b.aprl_status='ECPL' and (b.aprl_fr_dt1 is not null or b.aprl_fr_dt1 !='') and b.aprl_cmpcd =a.aprl_cmpcd and b.aprl_flag=a.aprl_flag and b.aprl_status = a.aprl_status and b.aprl_empcd= a.aprl_empcd and b.aprl_due_dt = a.aprl_due_dt
но
_US09C8 line 1, Syntax error on 'in'. The correct syntax is: UPDATE table [alias] [FROM table {, ... }] SET column = expression|NULL {, ... } [WHERE search_condition] or: UPDATE table [alias] [FROM table {, ... }] SET (column,column,...) = (SELECT expr,expr,... FROM ... ) [WHERE search_condition]
0x01AA
Не должно быть a.aprl_fr_dt in(select...)
быть чем-то вроде a.aprl_fr_dt = (select...)
?
Patrice T
А ошибка есть ?