collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 84
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13915
  • stats Beiträge insgesamt: 65822
  • stats Themen insgesamt: 8880
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Doppelte Einträge löschen  (Gelesen 586 mal)

Offline Mina

  • Access-Profi
  • **
  • Beiträge: 105
Doppelte Einträge löschen
« am: Januar 04, 2018, 10:08:34 »
Hallo Forum,

wer kann mir weiterhelfen?
Ich möchte in einer Tabelle alle doppelten Einträge löschen und zwar die in den Feldern
PATISTAMMNR EINKURZ LABEINDAT ERGEBNIST2 und ERGEBNIST1 dieselben Einträge aufweisen.

Ich habe es mit einer SQL Anweisung versucht
DELETE FROM Su_Resultate1
         WHERE 
                         PATISTAMMNR = PATISTAMMNR AND
                         EINSKURZ = EINSKURZ AND
                         LABEINDAT = LABEINDAT AND
                         ERGEBNIST2 = ERGEBNIST2 AND
                         ERGEBNIST1 = ERGEBNIST1

Diese Anweisung funktioniert nicht er löscht fast alle Datensätze.

Ich möchte jedoch, dass ein Datensatz stehen bleibt je PATISTAMMNR

Was mache ich falsch???


Danke

Mina
« Letzte Änderung: Januar 04, 2018, 10:17:05 von Mina »
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1174
Re: Doppelte Einträge löschen
« Antwort #1 am: Januar 04, 2018, 10:33:24 »
Wenn die Tabelle zumindest noch ein weiteres Feld bzw. Feldkombination zur Unterscheidung aufweist (idealerweise ein Primärschlüssel; manchmal reicht auch ein Timestamp), könnte man per Definition den höchsten oder niedrigsten Wert aus diesem Feld bzw. dieser Feldkombination bestehen lassen.

Das Prinzip wird in Roger's Access Library unter RemoveDuplicates.mdb erklärt.
Grüße von der (⌒▽⌒)
 

Offline Mina

  • Access-Profi
  • **
  • Beiträge: 105
Re: Doppelte Einträge löschen
« Antwort #2 am: Januar 04, 2018, 10:41:04 »
Hallo,

Danke für die schnelle Antwort
Es ist eine ID vorhanden (Auto Wert)

Gruß
Mina
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23270
Re: Doppelte Einträge löschen
« Antwort #3 am: Januar 04, 2018, 10:46:19 »
Hallo Mina,


benutze den "Abfrage-Assistenten zur Duplikatssuche" und lösche darin die Doppelten DS händisch ..

oder

Delete from Su_Resultate1 where id in
        (select t2.id from Su_Resultate1  t1 inner join  Su_Resultate1 t2 on t1.id>t2.id
          where t1 PATISTAMMNR = t2.PATISTAMMNR 
          and t1.EINSKURZ = t2.EINSKURZ
          and t1.LABEINDAT = t2.LABEINDAT
          and t1.ERGEBNIST2 = t2.ERGEBNIST2
          and t1.ERGEBNIST1 = t2.ERGEBNIST1)

Offline Mina

  • Access-Profi
  • **
  • Beiträge: 105
Re: Doppelte Einträge löschen
« Antwort #4 am: Januar 04, 2018, 10:58:14 »
Hallo,
ich die SQL Anweisung in eine Abfrage eingefügt.
und bekomme bei der Ausführung folgende
Fehlermeldung
Syntaxfehler in Abfrageausdruck id in
select t2.id from Su_Resultate1  t1 inner join  Su_Resultate1 t2 on t1.id>t2.id
          where t1 PATISTAMMNR = t2.PATISTAMMNR
          and t1.EINSKURZ = t2.EINSKURZ
          and t1.LABEINDAT = t2.LABEINDAT
          and t1.ERGEBNIST2 = t2.ERGEBNIST2
          and t1.ERGEBNIST1 = t2.ERGEBNIST1)

Die manuelle Lösung habe ich verworfen, da es sich um ca. 36.000 Datensätze handelt. Puh!!

Gruß
Mina
« Letzte Änderung: Januar 04, 2018, 11:02:34 von Mina »
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23270
Re: Doppelte Einträge löschen
« Antwort #5 am: Januar 04, 2018, 11:12:32 »
Hallo,

die öffnende Klammer vor "select"  fehlt.

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 882
Re: Doppelte Einträge löschen
« Antwort #6 am: Januar 04, 2018, 11:20:38 »
oder so:
DELETE
FROM
   Su_Resultate1 AS t1
WHERE
   EXISTS
      (
         SELECT
            NULL
         FROM
            Su_Resultate1 AS t2
         WHERE
            t1.id > t2.id
               AND
            t1.PATISTAMMNR = t2.PATISTAMMNR
               AND
            t1.EINSKURZ = t2.EINSKURZ
               AND
            t1.LABEINDAT = t2.LABEINDAT
               AND
            t1.ERGEBNIST2 = t2.ERGEBNIST2
               AND
            t1.ERGEBNIST1 = t2.ERGEBNIST1
      )
Mit freundlichem Glück Auf!

Eberhard
 

Offline Mina

  • Access-Profi
  • **
  • Beiträge: 105
Re: Doppelte Einträge löschen
« Antwort #7 am: Januar 04, 2018, 11:21:51 »
Hallo,

habe den fehler gefunden.
Es fehlte dieser Punkt in der Anweisung
Delete from Su_Resultate1 where id in
        (select t2.id from Su_Resultate1  t1 inner join  Su_Resultate1 t2 on t1.id>t2.id
          where t1.PATISTAMMNR = t2.PATISTAMMNR
          and t1.EINSKURZ = t2.EINSKURZ
          and t1.LABEINDAT = t2.LABEINDAT
          and t1.ERGEBNIST2 = t2.ERGEBNIST2
          and t1.ERGEBNIST1 = t2.ERGEBNIST1)

jETZT FUNKTIONIERT ES:

VIELEN DANK

Gruß
Mina
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23270
Re: Doppelte Einträge löschen
« Antwort #8 am: Januar 04, 2018, 11:35:05 »
Hallo,

in der Tat..  8)

ebs17 hat auch eine Alternative gegeben..