2017-02-08 10 views
0

с использованием Toad/Oracle SQL, я был бы признателен, если кто-нибудь сможет подтвердить, возможно ли это, и мой синтаксис правильный. Спасибо за вашу помощь. ГавUPDATE TABLE WITH SELECT AND JOIN

UPDATE IYP_MOVE_GS.NET_VALUE_LAST SET 
SELECT IYP_LIVE_ORDERLINES.SALES_DOC_NO || IYP_LIVE_ORDERLINES.LINE_ITEM AS KEYCODE2 
       , IYP_LIVE_ORDERLINES.NET_VALUE 
      FROM IYP_LIVE_ORDERLINES 
      WHERE IYP_LIVE_ORDERLINES.LIVE_DATE = '20170131' 
JOIN ON  
     IYP_MOVE_GS.KEYCODE = IYP_LIVE_ORDERLINES.SALES_DOC_NO || IYP_LIVE_ORDERLINES.LINE_ITEM 
+0

Ваш синтаксис неверен. Oracle не поддерживает 'FROM' в' JOIN'. –

+0

Правильный синтаксис для обновления соединения обсуждается здесь: http://stackoverflow.com/documentation/oracle/8061/update-with-joins#t=201702081750128269372 – mathguy

ответ

1

Я думаю, что вы можете использовать MERGE в этом случае:

merge into iyp_move_gs a 
using (
    select 
     sales_doc_no || line_item as keycode, 
     net_value 
    from iyp_live_orderlines 
    where live_date = '20170131' 
) b on (
    a.keycode = b.keycode 
) when matched update set a.net_value_last = b.net_value; 
+0

Благодарим вас за помощь, я дам ему оценку, оцените ваша помощь. – Gavin