Ich habe zwei Tabellen und ich muss die Datensätze zusammenführen.Zusammenführen von zwei Tabellen und Einfügen/Aktualisieren
Quelle:
ID seq name designation company
001 1 aaa Developer YYY
001 2 aaa lead yyy
002 1 mmm consultant bbb
003 1 ppp developer yyy
003 2 ppp lead yyy
003 3 ppp manager yyy
Ziel:
ID seq name designation company
001 1 aaa Developer YYY
001 2 aaa lead yyy
002 1 mmm consultant bbb
003 1 ppp developer yyy
003 2 ppp lead yyy
003 3 ppp manager yyy
I/Update Aufzeichnungen schreiben wollen fusionieren einzufügen. Meine Schlüsselspalten sind ID und seq beide. Sie sind zusammengesetzte Primärschlüssel. im Allgemeinen ist es ein Update-Datensatz, den wir bekommen. Zum Beispiel hat ID 001 zwei Datensätze in der Quelle. Wenn ID 001 einen weiteren Datensatz mit Sequenz 3 erhält, sollte dieser Datensatz als Einfügung in das Ziel gehen.
wenn meine Quelle hat jetzt Quelle:
ID seq name designation company
001 1 aaa Developer YYY
001 2 aaa lead yyy
001 3 aaa manager yyy
002 1 mmm consultant bbb
003 1 ppp developer yyy
003 2 ppp lead yyy
003 3 ppp manager yyy
dann sollte sein Ziel: Ziel:
ID seq name designation company
001 1 aaa Developer YYY
001 2 aaa manager yyy
001 3 aaa manager yyy
002 1 mmm consultant bbb
003 1 ppp developer yyy
003 2 ppp lead yyy
003 3 ppp manager yyy
ich mit unten merge versuchen und es funktioniert nicht für mich.
MERGE target t
using source s
on s.ID=t.ID and s.seq=t.seq
when not matched
then
Insert
(
ID,
seq,
name,
designation,
company
)
Values
(
s.ID,
s.seq,
s.name,
s.designation,
s.company
)
when matched
then
update
set
name=s.name,
designation=s.designation,
company=s.company
;
Können Sie mir bitte sagen, wo ich falsch liege? jede Hilfe ist
geschätzt