2016-07-25 46 views
-2

我有一個主表的數據表,可以說TABLE1改變基於另一個表

PLANT  JUNCTION  COST Disct 
LONDON  LD_1   10 1 
LONDON  LD_2   11 2 
LONDON  LD_3   12 5 
SUTHERLAND TE_R10  8 20 
SUTHERLAND TE_R10  8 20 
SUTHERLAND TE_R10  8 20 
SUTHERLAND TE_R11  9 23 
SUTHERLAND TE_R12  10 29 
NY   TE_R8  2 5 
NY   TE_R8  2 5 
NY   TE_R9  11 10 

我有另一個表表2所示:

PLANT   JUNCTION FLATRATE 
SUTHERLAND  TE_R10 0 
NY    TE_R8 10 

我的目的是產生表格如下表1和表格2所示:

PLANT JUNCTION CARRIERCOST Disct 
LONDON  LD_1 10 1 
LONDON  LD_2 11 2 
LONDON  LD_3 12 5 
SUTHERLAND TE_R10 0 20 
SUTHERLAND TE_R10 0 20 
SUTHERLAND TE_R10 0 20 
SUTHERLAND TE_R11 9 23 
SUTHERLAND TE_R12 10 29 
NY   TE_R8 10 5 
NY   TE_R8 10 5 
NY   TE_R9 11 10 

也就是說,如果工廠名稱和表格2中的聯結名稱匹配與表1,然後更新表1的成本,表2

+1

好運的FLATRATE!或者你真的有問題嗎? – HoneyBadger

+0

那麼,你需要一個新的表格還是隻想更新現有的表格?還更新或改變? – Philipp

+0

MySQL,Oracle或兩者兼而有之?如果不是兩者,請編輯您的帖子並刪除不適用的標籤。它真的只需要兩秒鐘。 – mathguy

回答

0

MYSQL

UPDATE T 
SET S.Cost = ISNULL(T.COST,S.Cost) 
FROM Table1 S 
LEFT JOIN Table2 T ON S.PLANT = T.PLANT AND S.PLANT ; 
0

甲骨文

CREATE TABLE table3 
AS 
    SELECT a.plant, a.junction, NVL (b.flatrate, a.cost) carriercost, a.disct 
    FROM table1 a 
    LEFT OUTER JOIN table2 b ON a.plant = b.plant AND a.junction = b.junction