2017-02-08 4 views
0

mit Toad/Oracle SQL, würde ich es begrüßen, wenn jemand bestätigen könnte, wenn dies möglich ist, und ob meine Syntax korrekt ist. Danke für Ihre Hilfe. GavUPDATE TABLE MIT SELECT UND 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

Ihre Syntax ist falsch. Oracle unterstützt 'FROM' nicht in' JOIN'. –

+0

Die korrekte Syntax zum Aktualisieren eines Joins wird hier diskutiert: http://StackOverflow.com/documentation/oracle/8061/update-with-joins#t=201702081750128269372 – mathguy

Antwort

1

Ich glaube, Sie MERGE in diesem Fall verwenden können:

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

Vielen Dank für Ihre Hilfe, ich werde es versuchen, zu schätzen wissen Eure Hilfe. – Gavin