2016-07-25 35 views
-2

ich als eine Haupttabelle haben, sagen wir TABLE1Ändern einer Tabelle basierend auf Daten aus einer anderen Tabelle

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 

ich einen anderen Tisch haben Table2 wie folgt aus:

PLANT   JUNCTION FLATRATE 
SUTHERLAND  TE_R10 0 
NY    TE_R8 10 

Meine Absicht ist es ein generieren Name und Verbindungs ​​Namen von den table2 Streichhölzern

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 

, dass, wenn die Anlage: Tabelle wie die unten in der Tafel 1 und table2 mit tabelle1, dann aktualisieren, um die Kosten der Tabelle1 die Flatrate von table2

+1

Viel Glück! Oder hast du tatsächlich eine Frage/ein Problem? – HoneyBadger

+0

Sie benötigen also eine neue Tabelle oder möchten nur eine vorhandene aktualisieren. Auch aktualisieren oder ändern? – Philipp

+0

MySQL, Oracle oder beides? Wenn es nicht beides ist, bearbeiten Sie Ihren Post und entfernen Sie das nicht zutreffende Tag. Es dauert nur zwei Sekunden. – mathguy

Antwort

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

Oracle

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 
Verwandte Themen