Doppelte Datensätze löschen

AirRocket

Grünschnabel
Hi,
ich habe das Problem dass ich doppelte Datensätze löschen muss, die aber unterschiedliche Einträge in Feldern haben.

Die Tabelle Besteht aus 3 Feldern
1. ID 2.cID 3. sID

nun müssen die cID und die s ID überpfüft werden und wenn sie beide doppelt sind dann gelöscht werden.
Also cID in Abhängigkeit von der sID.

Die cID´s gibt es mit untescrhiedlichen SID´s.

Das ganze läuft auf einem MS SQL Server 2000 version 5.0

Danke für Hilfe
 
Hallo,

also mir ist die Abhängigkeit, von der du sprachst nicht ganz klar ...
könntest du das ganze bitte an Beispieldaten erläutern?! Das wäre sehr hilfreich.

MFG
SchwarzerMond
 
Hier hab ich mal einen xport der daten angehängt dann wird es evtl deutlicher...

Danke für eure Hilfe...

Gruß Rocket
 

Anhänge

  • export.zip
    183,1 KB · Aufrufe: 34
Hallo AirRocket,

wie man Doppelte Einträge in einer Tabelle findet kannst Du hier nachlesen:

SDH

Dann sollte es Dir ein leichtes sein, die Einträge zu löschen.

Chris
 
select spalte_1, spalte_2, spalte_3, count(*)
from tabelle
group by spalte_1, spalte_2, spalte_3
having count(*) > 1;

das sieht schonmal sehr gut aus leider hat der Enterprise manager was gegen das wörtchen having.
Kann ich da alternativ was benutzen?

Tausend dank für die Hilfe!

Rocket
 
Der EM hat üblicherweise nix gegen Having. Trägst Du das SQL Statement direkt in die SQL Ansicht ein?

Bei mir klappt es einwandfrei.

Achja, das Semikolon am Ende des Statements hat da nix zu suchen.
 
hey das ; war der Fehler jetzt schluckt er alles perfekt.

So nun habe ich die, die doppelt sind und in der Expr steht drinnen wie oft sie vorkommen wenn ich das richtig sehe.

Jetzt weiß ich zwar welche es sind, sie sind aber nicht gelöscht.

Gibt es einen Befehl der sagt wenn sie mehrfach vorkommen dann kick sie raus?

Grüße Rocket
 
Hallo!

Wenn der MS SQL Server Unterabfragen unterstützt, dann dürfte das so gehen:

Wenn
Code:
delete from tabelle
where (spalte_1, spalte_2, spalte_3) in 
(select spalte_1, spalte_2, spalte_3
  from tabelle
  group by spalte_1, spalte_2, spalte_3
  having count(*) > 1
)
 

Neue Beiträge

Zurück