Как мне обновить таблицу с левым соединением на скрипте. Я использую базу данных DB2.
Я создал оператор выбора, и он работает:
**
select t1.estrcd as "transaction code",
t1.espyno as "payer",
t1.escuno as "customer no",
t1.escino as "invoice no",
t1.esvono as "voucher no",
t1.escuam as "foreign currency amount",
COALESCE(t2."received_amount",0) as "received amount",
t1.escuam + COALESCE(t2."received_amount",0) as "outstanding amount"
from m3edbedu.fsledg t1 left join
(select espyno, escino, sum(escuam) as "received_amount" from m3edbedu.fsledg
where estrcd = 20 group by espyno, escino) as t2 on
t2.espyno = t1.espyno and t2.escino = t1.escino
where t1.esreco = 0 and t1.estrcd = 10 and (t1.escuam + COALESCE(t2."received_amount",0)) = 0
order by t1.espyno, t1.escino, t1.estrcd;
**
но теперь они просят меня обновить таблицу и установить для t1.esreco значение 9. Я попытался использовать приведенный ниже скрипт для обновления, но получаю ошибку.
update m3edbedu.fsledg t1 LEFT JOIN(select espyno, escino, sum(escuam) as "received_amount"
from m3edbedu.fsledg
where estrcd = 20
group by espyno, escino) as t2
on t2.espyno = t1.espyno and t2.escino = t1.escino set t1.esreco = 9 where t1.esreco = 0 and t1.estrcd = 10 and (t1.escuam + COALESCE(t2."received_amount",0)) = 0 order by t1.espyno, t1.escino, t1.estrcd;1;
Ошибка: SQL0199 - Ключевое слово LEFT не ожидается. Действительные токены: SET.
(Состояние: 37000, собственный код: FFFFFF39) Ошибка: SQL0104 - токен 1 не был
действительный. Действительные токены: (CL END GET SET CALL DROP FREE HOLD LOCK OPEN OPEN
С ALTER BEGIN. (Штат: 37000, собственный код: FFFFFF98)
Надеюсь, кто-нибудь может мне помочь.
Заранее спасибо. :)