Ich habe zwei Tabellen Customer_staging
und Customer
. Die customer_staging Tabelle hat die Felder customer_num
, birth_date
und birth_month
und diese Tabelle wird jeden Tag aktualisiert. Alle neuen zusätzlichen Datensätze aus dieser Tabelle sollten in die aktuelle Customer
Tabelle aktualisiert werden. Außerdem sollten alle Datensätze, die nicht in den Werten für birth_date
und birth_month
übereinstimmen, in die Tabelle Customer
aktualisiert werden.Finden Sie Unterschiede in Daten zwischen zwei SQL-Server-Tabellen
Ich versuchte die folgende Abfrage.
Select customer_num, birth_date, birth_month from Customer_Staging
EXCEPT
Select customer_num, birth_date, birth_month from Customer
INNER JOIN Customer_Staging ON Customer_Staging.customer_num = Customer.customer_num
Ich bekomme die Ergebnisse, die ich will, aber ich bekomme mehr Anzahl von Datensätzen. Ich habe den inneren Join im zweiten Teil der Abfrage hinzugefügt, in der Annahme, dass das Resultset auf die Tabelle beschränkt wird, die eine geringere Anzahl an Datensätzen enthält. Die Customer_Staging-Tabelle verfügt über 3170 Datensätze, während die Customer-Tabelle derzeit nur 40 Datensätze enthält. Zum Beispiel, wenn ich 5 Datensätze habe, die zwischen den beiden übereinstimmen, hat die Ergebnismenge 3165 Datensätze. Allerdings möchte ich die Unterschiede Resultset für die Datensätze, die nur in der Customer-Tabelle vorhanden sind.
Kann jemand helfen?
Ich glaube, Sie brauchen Merge – KumarHarsh