Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Doppelte Datensätze auf je 1 Datensatz reduzieren

Begonnen von Torsten., März 05, 2011, 17:16:25

⏪ vorheriges - nächstes ⏩

Torsten.

Hallo,
ich habe folgenden Inhalt einer Tabelle:

1258
1260
1375
1488  <--
1488
1522  <--
1522
1522
1522
1720

Nun möchte ich die doppelten, auf einen Datenstz reduziert haben.
Ergebnis =
1258
1260
1375
1488
1522
1720

Mit der Duplikatsabfrage komme ich nicht zum Ergebnis,
da die mir dann nur
1488
1522
anzeigt, aber nicht auch die einzelnen Datensätze - die auch benötigt werden.
Kann jemand helfen?
Gruß TVH

Hondo

#1
Hallo,
du meinst doppelte löschen?
Bei 2 Gleichheitskriterien geht das z.B. so:

DELETE DISTINCTROW T1.*, T1.ID
FROM   DeineTabelle AS T1
      INNER JOIN DeineTabelle AS T2
      ON  T1.DeinGleichesFeldNr1  = T2.DeinGleichesFeldNr1
      AND T1.DeinGleichesFeldNr2 = T2.DeinGleichesFeldNr2
WHERE  T1.DeineID>T2.DeineID

D.H. du brauchst zwingend ein Schlüsselfeld, z.B. einen Autowert (DeineID)

Bei nur 1 Gleichheitskriterium einfach die Zeile AND T1.... weglassen.
Gruß Andreas

Torsten.

Hallo Andreas,
vielen Dank für Deine schnelle Reaktion.
1. Frage: "2 Gleichheitskriterien" bedeutet das bei 2 doppelten Art-Nr?
2. Frage: Wohin mit dem "Code", in eine Abfrage?
Bitte wenn möglich etwas näher beschreiben.
Gruß TT

Hondo

Hallo,
wenn du doppelte Adressen löschen möchtest dann wirst du nach Name, Vorname, Strasse, PLZ und Stadt unterscheiden. Das wären 5 Unterscheidungskriterien. In deinem Beispiel gibt es nur die eine Nummer, also wird nur nach dieser Unterschieden.

Zusätzlich brauchst du einen Identifier, d.H. ein eindeutiges Feld in der Tabelle wo die Werte je nu 1x vorkommen dürfen. Z.B. ein Autowert.
Wenn du dieses Feld nicht hast füge einfach ein neues Feld an mit dem Felddatentyp "autowert" und benenne das Feld "ID".

Dann erstelle eine neue Abfrage und klicke unter Ansicht auf SQL-Ansicht. Dort gibst du folgenden SQL-Code ein:

DELETE DISTINCTROW T1.*, T1.ID
FROM   DeineTabelle AS T1
       INNER JOIN DeineTabelle AS T2
       ON  T1.Nummer  = T2.Nummer
WHERE  T1.ID>T2.ID


DeineTabelle und Nummer musst du noch anpassen.
Speichere die Abfrage z.B. unter Abf_Loeschen und verlass den Abfrageeditor.

Jetzt siehtst du dass die Abfrage ein anderes Icon bekommen hat. Führe die Abrage duch Doppelklick aus und deine Doppelten Datensätze sind gelöscht.

Gruß Andreas



Torsten.

Hallo Andreas,
vielen Dank für Deine Hilfe und nochmalige Erläuterung.
Mein Problem ist damit gelöst.
Gruß TVH