# Doppelte Datensätze löschen



## AirRocket (4. Mai 2005)

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


----------



## SchwarzerMond (9. Mai 2005)

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


----------



## Thomas Darimont (9. Mai 2005)

Hallo!

Schau mal hier:
http://www.tutorials.de/tutorials190762.html&highlight=doppelt

gruß Tom


----------



## AirRocket (25. Mai 2005)

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

Danke für eure Hilfe...

Gruß Rocket


----------



## XChris (26. Mai 2005)

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


----------



## AirRocket (27. Mai 2005)

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


----------



## andi_g69 (27. Mai 2005)

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.


----------



## AirRocket (27. Mai 2005)

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


----------



## AirRocket (8. Juni 2005)

Hat keiner eine Idee bzw eine Antwort für mich


----------



## Frankdfe (8. Juni 2005)

Hallo!

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

Wenn 

```
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
)
```


----------



## AirRocket (8. Juni 2005)

funktioniert leider nicht...er bringt einen fehler...Line1: incorrect syntax near ','


----------

