Duplikatabfrage-Duplikate löschen Access 

Gollom

Registered +
Registriert
Dez. 2006
Beiträge
601
Hallo,

ich habe ein Problem mit meiner Access 2007Datenbank.
Dort befinden sich Duplikate, die ich löschen möchte.
Als erste habe ich eine Duplikatabfrage erstellt, die mir die Duplikate auch anzeigt.
Jetzt suche ich nach einer Möglichkeit diese Duplikate in der richtigen Abfrage zu finden und löschen zu lassen.
Könnt Ihr mir dabei helfen, ich komme nicht weiter.

Im Das Ergebnis der Duplikatabfrage sieht wie folgt aus:

CBN --------Perfekt2-------Anzahl von Duplikaten

S107--------BA017--------------2
S107--------BA018--------------2
S108--------35440--------------2
S108--------35440--------------2
S109--------66666--------------2




Ich hoffe, ihr könnt mir helfen.

MfG

Gollom
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

was meinst Du genau mit Duplikaten?
- doppelte Datensätze in einer Tabelle?
oder
- Datensätze welche in zwei verschiedenen Tabellen sind?

Fürs erstere würde ich empfehlen eine Abfrage auf die Tabelle durchzuführen und im SELECT mit DISTINCT oder mit Gruppierung zu arbeiten, dann kannst du diese nun eindeutigen Datensätze in einer andere (temporäre) Tabelle einfügen,
die erste Tabelle leeren und bei Bedarf aus der temporären Tabelle einfügen.

Gruß

Frank
 
Hallo Gollom,
hab ich in einem anderen Forum gefunden:

ein moeglicher Weg waere doppelte Verwendung der Tabelle. entsprechend dem folgenden Beispiel
Code:
DELETE DISTINCTROW T1.*, T1.ID
FROM DeineTabelle AS T1
INNER JOIN DeineTabelle AS T2
ON T1.DeinGleichesFeld = T2.DeinGleichesFeld
AND T1.DeinGleichesFeld1 = T2.DeinGleichesFeld1
WHERE T1.DeineID>T2.DeineID;

Du benoetigst dafuer aber ein eindeutiges Feld (hier DeineID).

gruß mujke
 
DELETE DISTINCTROW T1.*, T1.ID
FROM DeineTabelle AS T1
INNER JOIN DeineTabelle AS T2
ON T1.DeinGleichesFeld = T2.DeinGleichesFeld
AND T1.DeinGleichesFeld1 = T2.DeinGleichesFeld1
WHERE T1.DeineID>T2.DeineID;

klappt bei mir nicht
 
Hi Morzan,
was klappt nicht?
Hast du Tabellen- und Feldnamen richtig eingegeben?

gruß
mujke

Edit:
habs gerade ausprobiert, funktioniert tadellos.

Hier meine Abfrage:
SELECT DISTINCTROW T1.*, T1.ID
FROM tbl_umsatz_2009 AS T1 INNER JOIN tbl_umsatz_2009 AS T2 ON (T1.Betrag=T2.Betrag) AND (T1.Valutadatum=T2.Valutadatum)
WHERE T1.ID>T2.ID;

PS: SELECT zeigt die doppelten Daten an und wenn du diese dann wirklich löschen möchtest, dann ersetzte SELECT durch DELETE
 
Zuletzt bearbeitet von einem Moderator:
Servus,
ich glaube, daß alle bei denen es nicht "funktioniert" hier drüberlesen

Zitat:
"Du benoetigst dafuer aber ein eindeutiges Feld (hier DeineID)."

Im ersten Augenblick erscheint es ja unsinnig eine eindeutige ID, als Kriterium bei einer Duplikatsabfrage mit einzubeziehen.
Ablauf:
1.Abfrage-Assistent zur Duplikatsuche
2.Tabelle auswählen
3.Felder auswählen (inclusive ID!)
4.Fertigstellen
Wenn man jetzt die neue Abfrage ausführt, dann sieht man.....Nichts.
5.Abfrage in der Entwurfansicht öffnen
>>Ansicht>>SQL und bestehende SQL durch obige SQL ersetzen.
Wenn man SELECT DISTINCTROW eingegeben hat und die Abfrage jetzt ausführt, dann sieht ma alle Daten die mehrfach vorkommen. Das sind alle Daten die dann gelöscht werden, wenn Select durch DELETE ersetzt wird.

Gruß
mujke
 
Zitat:
Hast du Tabellen- und Feldnamen richtig eingegeben?

Kannst du deine Frage etwas genauer formulieren?

gruß
mujke
 
Zurück
Oben Unten