Ich habe eine STG-Tabelle, in der wir Werte aus zwei SRC-Tabellen täglich in die STG-Tabelle abschneiden und laden. Ich habe ein Change-Flag (Ch_Flg) und in der STG-Tabelle so erstellt, dass wir, anstatt die Tabellen täglich zu kürzen, Werte in STG einfügen, nur wenn bestimmte Felder in SRC geändert wurden.Einfügen von Datensätzen in eine Tabelle, wenn sich die Werte von src geändert haben
Da jedoch SRC-Tabelle direkt in STG geladen wird, brauche ich eine temporäre Tabelle, in der ich alle SRC-Datensätze speichern und mit STG überprüfen kann, wenn die Datensätze geändert haben und in STG nur eingefügt, wenn diese Datensätze geändert haben.
Zum Beispiel der SRC1-Tabelle hat Spalten wie (ID, Name, Tag, Sector, Dept, Stadt, Telefon, HireDate etc.) und SRC2 haben Spalten wie (ID, Name, Competency, Stadt, Telefon usw.)
Sollte ich alle Werte aus SRC in eine temporäre Tabelle laden und dann mit der STG-Tabelle vergleichen? Oder gibt es einen effizienteren Weg, dies zu tun?
Danke für die Struktur. Was ist mit Singles? –
Das wird als "Common Table Expression" oder CTE bezeichnet, es ist eine Möglichkeit, einen bestimmten Datensatz zu sammeln und etwas anderes damit zu tun. Wenn Sie in diesem Fall die select-Anweisung innerhalb von With verwenden und sie mit Ihren Tabellen ausführen, erhalten Sie alles aus einer Tabelle und nicht aus einer anderen zurück. Dann nehmen wir diese Datengruppe und fügen die Datensätze, die nicht existieren, in die Zieltabelle ein. In Ihrem Fall stelle ich mir vor, Sie interessieren sich nur für Datensätze mit einer bevölkerten Änderungsflagge. Sie können also Ihre Daten ändern, um sie zu ändern, und sie dann unten einfügen. – DrHouseofSQL
edit: Alle 'anderen Felder', die ich am Ende des Skripts habe, müßten in Ihrer ursprünglichen Auswahl in der WITH-Anweisung sein. Sorry, dass – DrHouseofSQL