Ich habe zwei Tabellen. Ich muss eine Spalte in einer Tabelle mit '1' und '0' aktualisieren. Mit '1', wobei E_ID in beiden Spalten übereinstimmt und '0', wo E_ID nicht in der zweiten Tabelle vorhanden ist.
Hinweis: Eine Tabelle enthält alle E_IDs, die zweite Tabelle enthält eine Teilmenge der E_IDs. Keine der Spalten E_ID in beiden Geschichten enthält NULL.Update mit dem Fall, wenn vorhanden Klausel
Die Abfrage unten führt nur den ersten Teil des Jobs aus (aktualisiert auf '1').
UPDATE [MIDASFactory].[dbo].[Employees]
SET [Changed To Residential] = 1
FROM ##formerEmployees t
INNER JOIN [dbo].[Employees] (NOLOCK)
ON t.e_ID = E_ID
Ich modifizierte die Abfrage oben, um auch mit '1' und '0' wie oben beschrieben zu aktualisieren.
Aber es funktioniert nicht richtig, da es alle Zeilen auf den ersten Wert aktualisiert durch die Auswahlunter Klausel in der Abfrage zurück unten, wo E_ID in beiden Tabellen übereinstimmen.
UPDATE [dbo].[Employees]
SET [Current Employee] =
CASE WHEN EXISTS (SELECT * FROM [dbo].[Employees] P (NOLOCK)
LEFT OUTER JOIN ##formerEmployees t (NOLOCK) ON P.E_ID=t.e_ID)
THEN 1
ELSE 0
END
FROM ##formerEmployees t
Dank. Perfekt arbeiten. – enigma6205