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