Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verbinden Sie zwei identische Tabellenstrukturen mit unterschiedlichen Daten

Um diese Abfrage zu vervollständigen, sind zwei Tricks erforderlich. Der erste ist ein FULL JOIN. Ein vollständiger Join ermöglicht es Ihnen, beide Tabellen zu kombinieren und Nullen in eine der Tabellen einzufügen, wenn Sie die Join-Bedingung nicht erfüllen. Die zweite ist COALESCE, mit der Sie die Anlage und den Standort aus der Tabelle entnehmen können, die einen Datensatz für diese Zeile in den Ergebnissen enthält.

SELECT Coalesce(t1.Site,t2.Site) As Site, COALESCE(t1.Plant, t2.Plant) As Plant,
    t1.Value_1 As t1_Value_1, t1.Value_2 As t1_Value_2,
    t2.Value_1 As t2_Value_1, t2.Value_2 As t2_Value_2
FROM Table1 t1
FULL JOIN Table2 t2 ON t1.Site = t2.Site AND t1.Plant = t2.Plant