Hallo Leute,
ich muss eine Portierung per SQL-Befehle durchführen von einer alten Datenbank ohne Primärschlüssel in eine Datenbank mit Primärschlüssel. In der alten Datenbank sind anhand der Schlüssel der neuen Datenbank Duplikate vorhanden. Ich habe mal folgendes einfaches Beispiel aufgestellt:
Tabelle test:
prim1 prim2 field1 field2
1 1 1 1
1 1 1 1
1 1 1 0
1 2 1 0
2 1 1 0
Die Spalten prim1 und prim2 bilden in der neuen Datenbank einen zusammengesetzten Primärschlüssel. Beim Übertragen der Tabelle müssen zwingend 2 Zeilen mit dem Primärschlüssel 1 1 wegfallen. Die Entscheidung sollte mir am besten SQL abnehmen.
Ich habe mir mit folgendem Trick (Benutzung der Agregatfunktion Max()) Abhilfe geschaffen:
SELECT prim1, prim2, MAX(field1) as field1, MAX(field2) as field2 FROM test GROUP BY prim1, prim2
Dabei ist es mir egal, ob ich die Zeile 1 1 1 1 oder die Zeile 1 1 1 0 behalte.
Gibt es ein SQL-Statement, welche mir die Entscheidung abnimmt, welche der beiden Zeilenwerte ausgewählt wird?
Vielen Dank im Voraus!
Gruß
maddilli16
ich muss eine Portierung per SQL-Befehle durchführen von einer alten Datenbank ohne Primärschlüssel in eine Datenbank mit Primärschlüssel. In der alten Datenbank sind anhand der Schlüssel der neuen Datenbank Duplikate vorhanden. Ich habe mal folgendes einfaches Beispiel aufgestellt:
Tabelle test:
prim1 prim2 field1 field2
1 1 1 1
1 1 1 1
1 1 1 0
1 2 1 0
2 1 1 0
Die Spalten prim1 und prim2 bilden in der neuen Datenbank einen zusammengesetzten Primärschlüssel. Beim Übertragen der Tabelle müssen zwingend 2 Zeilen mit dem Primärschlüssel 1 1 wegfallen. Die Entscheidung sollte mir am besten SQL abnehmen.
Ich habe mir mit folgendem Trick (Benutzung der Agregatfunktion Max()) Abhilfe geschaffen:
SELECT prim1, prim2, MAX(field1) as field1, MAX(field2) as field2 FROM test GROUP BY prim1, prim2
Dabei ist es mir egal, ob ich die Zeile 1 1 1 1 oder die Zeile 1 1 1 0 behalte.
Gibt es ein SQL-Statement, welche mir die Entscheidung abnimmt, welche der beiden Zeilenwerte ausgewählt wird?
Vielen Dank im Voraus!
Gruß
maddilli16
Comment