hallo zusammen,
ich habe folgendes Problem:
die Daten in der Datenbank schauen ca so aus:
NR Name Code
------------------------
111 Kuchen DE
111 Kuchen AT
111 Obst OP
122 Stein OP
132 Kuchen AT
132 Glas OP
Wie ihr in den Zeilen 1 und 2 seht, sind die Einträge bis auf den Code identisch.
Es kommt vor dass Nr und Name gleich sind, sich aber nur im Code unterscheiden.
Als Code stehen 3 Werte zur verfügung: DE, AT und OP
Die Doppelten kommen nur bei DE und AT vor, nie bei OP. OP Einträge sind immer eindeutig!
So jetzt das Problem: Bei den Doppelten sollen die Zeilen wo AT als Code steht, gelöscht werden.
Bei Beispiel oben sollte nur die erste Zeile selektioert werden, die zweite soll übersprungen werden
Ich habe es geschafft NUR die Doppelten zu selektieren und zu bereinigen. Jetzt bräuchte ich irgendwie noch den rest und dann könnte ich diese 2 selections zusammenbringen.
Hier was ich schon habe:
Ich hoffe es kann mir jemand einen tipp geben.
ich habe folgendes Problem:
die Daten in der Datenbank schauen ca so aus:
NR Name Code
------------------------
111 Kuchen DE
111 Kuchen AT
111 Obst OP
122 Stein OP
132 Kuchen AT
132 Glas OP
Wie ihr in den Zeilen 1 und 2 seht, sind die Einträge bis auf den Code identisch.
Es kommt vor dass Nr und Name gleich sind, sich aber nur im Code unterscheiden.
Als Code stehen 3 Werte zur verfügung: DE, AT und OP
Die Doppelten kommen nur bei DE und AT vor, nie bei OP. OP Einträge sind immer eindeutig!
So jetzt das Problem: Bei den Doppelten sollen die Zeilen wo AT als Code steht, gelöscht werden.
Bei Beispiel oben sollte nur die erste Zeile selektioert werden, die zweite soll übersprungen werden
Ich habe es geschafft NUR die Doppelten zu selektieren und zu bereinigen. Jetzt bräuchte ich irgendwie noch den rest und dann könnte ich diese 2 selections zusammenbringen.
Hier was ich schon habe:
Code:
select Nr, Name, 'DE' from ( select Nr ,Name ,Code from Alle_Stuecke where Code <> '--' and (Code = 'DE' or Code='AT') group by 1,2,3 ) as temp group by 1,2 having count(*) > 1