2017-02-16 7 views
0

SQL 2012 MitMehrere Felder Werte zwischen Datensatz in zwei Tabellen aktualisiert

ich zwei Tabellen, die 0.59 auf M_id existiert (es keine Duplikate in beiden Tabellen sind), aber die nicht identisch Aufzeichnungen sind aber einige des haben gleiche Felder definiert, aber nur in verschiedenen Spalten.

Ich muss eine Wertüberprüfung durchführen, und wenn eine "1" in einer bestimmten Zelle in Tabelle A angezeigt wird, muss ich dieses Feld auf eine "1" in TabelleB aktualisieren.

Beispiel:

TableA

M_id | L1 | L2 | L3 
100 | 0 | 1 | 0 

TableB

M_id | S1 | S2 | S3 
100 | 0 | 0 | 0 

Die Beziehung ist hier L2 = S3, so dass, wenn eine "1" in L2 angetroffen wird, muss ich S3 sein aktualisiert auf eine "1". Alle tableB-Werte werden eine "0" sein, bis sie aktualisiert werden.

Die anderen Spalten müssen auf die gleiche Weise aktualisiert werden wie L1 = S2 und L3 = S1 und so.

nicht so sicher, wie dies geschehen könnte.

Danke,

MP

Antwort

0

Wenn ich verstehe, was Sie richtig verstanden.

WITH cte (
    SELECT 
     a.L2 
     , b.S3 
    FROM 
     tableB b 
     JOIN tableA a ON a.M_id = b.M_id 
    WHERE 
     b.L2 = 1 
) 
UPDATE cte 
SET S3 = L2, S2 = L1, S1 = L3 
+0

Hallo, auch die Join-Bedürfnisse durch entsprechende M_id der sein, ein dann der Scheck ist zu sehen, ob L's einen Wert von „1“ hat, müssen sie ihr „matching“ Feld in TableB mit den Beziehungen aktualisieren von L1 = S2, L2 = S3 und L3 = S1. – mrpush

+0

@mrpush Aktualisiert. – DVT

+0

Ich werde es versuchen! Vielen Dank! – mrpush

Verwandte Themen