Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

joindre deux structures de table identiques avec des données différentes

Deux astuces sont nécessaires pour compléter cette requête. Le premier est un FULL JOIN. Une jointure complète vous permettra de combiner les deux tables et d'insérer des valeurs nulles dans l'une ou l'autre table lorsque vous ne correspondez pas à la condition de jointure. Le 2ème est COALESCE, qui vous permettra de prendre l'usine et le site à partir de n'importe lequel des tableaux fournissant un enregistrement pour cette ligne dans les résultats.

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