sql >> Databasteknik >  >> RDS >> Sqlserver

sammanfoga två identiska tabellstrukturer med olika data

Två knep behövs för att slutföra denna fråga. Den första är en FULL JOIN. En fullständig koppling gör att du kan kombinera båda tabellerna och infoga nollor i båda tabellerna när du inte matchar kopplingsvillkoret. Den andra är COALESCE, vilket gör att du kan ta anläggningen och platsen från vilken av tabellerna som ger en post för den här raden i resultaten.

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


  1. Count(*) fungerar inte korrekt

  2. Hur man överför rader till kolumner dynamiskt i MySQL

  3. Hur man extraherar en delsträng från en sträng i Oracle/SQLite

  4. behöver flytta data från ett fält till ett annat, inom samma tabell