Oracle UPDATE with JOIN 3 tables?


UPDATE calculation  
LEFT JOIN transportorders ON calculation.ataid = transportorders.nr
LEFT JOIN partner ON partner.taid = transportorders.nr 
AND calculation.FZZAEHLER=ATAFRACHTZAHLER.FZZAEHLER
SET calculation.BABRECHNUNGSINFO = '.....' 
WHERE calculation.ataid IN
(SELECT transportorders.nr 
FROM transportorders 
WHERE transportorders.tournr = '212041') 
AND partner.kundenid = '2486909';

我正在尝试这个代码,但它给我一个错误,SET关键字找不到。这意味着联接没有达到应有的状态。如何在UPDATE中进行此选择?正则SELECT可以很好地处理相同的表。

尝试merge:

MERGE INTO calculation c
USING (SELECT '....' new_value, t.nr
FROM transportoders t LEFT JOIN partner p ON p.taid = t.nr
WHERE     t.tournr = '212041'
AND p.kundenid = '2486909') x
ON (c.ataid = x.nr)
WHEN MATCHED
THEN
UPDATE SET c.babrechnungsinfo = x.new_value;

最新更新