使用SELECT和JOIN更新表

时间:2017-02-08 16:47:38

标签: sql oracle

使用Toad / Oracle SQL,如果有人能确认这是否可行,以及我的语法是否正确,我会很感激。谢谢你的帮助。 GAV

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

1 个答案:

答案 0 :(得分:0)

我认为在这种情况下你可以使用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;