November 27, 2020, 06:47:51

Neuigkeiten:

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


(fast) Doppelte Einträge - ausgenommen eine Spalte

Begonnen von ShaOm, November 19, 2020, 09:16:18

⏪ vorheriges - nächstes ⏩

ShaOm

Hallo zusammen,

ich bin noch ein Anfänger was Access angeht.
Wie kann ich mittels Abfrage folgendes Problem lösen:

Ich habe mehrere Spalten, sagen wir 3. Dabei kommen gibt es doppelte Einträge, sprich Zeilen sind identisch.
Dabei sind aber immer nur 2 Spalten mit einem identischen Eintrag enthalten. Die 3 Spalte hat immer nur 2 Mögliche Einträge. Beispiel:

Spalte1     Spalte2     Spalte3
X123        Y123        MSP
X567        Y567        MSP
X123        Y123        NSP


hier seht ihr, dass die erste Zeile und die 3 in Spalte 1 und zwei identischen Eintrag haben, aber Spalte 3 unterschiedlich ist.
Ich würde dann gerne wollen, dass immer wenn Spalte 1 und 2 irgendwo in der ganzen Tabelle in dieser Konstellation vorkommt immer der doppelte Eintrag mit dem Inhalt "NSP" in Spalte 3 gelöscht wird.

Am besten wäre SQL Abfrage in Access hilfreich.

Vielen Dank!

VG

ebs17

Vorab: In eigenen DB-Tabellen würde man ungewünschte Datensätze erst gar nicht zulassen (eindeutige Indizierung). Wenn kein Müll entsteht, braucht man keinen wegräumen.
DELETE
FROM
   TabelleX AS T
WHERE
   EXISTS
      (
         SELECT
            NULL
         FROM
            TabelleX AS X
         WHERE
            X.Spalte1 = T.Spalte1
               AND
            X.Spalte2 = T.Spalte2
               AND
            X.Spalte3 > T.Spalte3
      )
Mit freundlichem Glück Auf!

Eberhard

ShaOm

Hallo,

vielen Dank für die Antwort.

Grundlegend gebe ich dir recht, dass man es gar nicht zu doppelten Einträgen führen lassen sollte.

Allerdings ist das in meinem Fall keine Datenbank die ich dauernd nutze. Es dient er zu Testzwecken.
Ich habe über einen ESB Server Daten automatisch verarbeitet. Das Ergebnis davon ist eine Excel liste und ich muss überprüfen, ob diese Liste keine Fehler enthält.
Eines dieser Schritte zum testen ist der Aufbau des selben automatischen Prozesses über Access, um zu schauen, ob über Access das selbe Ergebnis kommt und ich im ESB Server keinen Fehler im code habe.

Daher ist auch hier der Befehl DELETE nicht anwendbar. Ich habe nämlich zwei Importierte Tabellen --> Auf diese Tabelle habe ich eine Abfrage, wo ich beide einfach mittels UNION aneinander lege. Nun sind diese doppelten Einträge und ich müsste auf meine Abfrageergebnisse eine neue Abfrage machen und dabei so mit SELECT arbeiten, dass der doppelte Eintrag mit "NSP" nicht selektiert bzw. aussortiert wird.

Hoffe ich konnte es verständlich erläutern.

Vielen Dank!

VG


ebs17

ZitatDaher ist auch hier der Befehl DELETE nicht anwendbar.
Da hatte ich wohl dem verwendeten Wort "gelöscht" eine Bedeutung zugemessen.
SELECT
   Spalte1,
   Spalte2,
   MAX(Spalte3) AS M3
FROM
   AbfrageY
GROUP BY
   Spalte1,
   Spalte2
Mit freundlichem Glück Auf!

Eberhard