Hallo zusammen,
ich habe folgende Herausforderung, die mir als SQL-Anfänger ganz schön Kopfzerbrechen bereitet:
Eine Tabelle Test hat die Felder ID (Autowert), Personalnummer, Meldedatum und Meldezeit.
Ich möchte nun das Feld Personalnummer in Zeile 1 mit dem in Zeile 2 vergleichen. FAlls die beiden gleich sind, sollen das Meldedatum aus Zeile 1 und 2 verglichen werden. Als dritter Vergleich soll geprüft werden, ob zwischen den beiden Zeitstempeln weniger als 61 Sekunden vergangen sind. Wenn das auch noch der Fall ist soll der erste Datensatz gelöscht werden. Der zweite Datensatz dient im Folgenden Durchlauf als Vergleichsmaßstab für Zeile 3.
Die Tabelle ist so sortiert, das es damit funktioniert. Meine bisherigen Versuche sehen so aus:
DELETE *
FROM test, test AS test_1
WHERE EXISTS
(SELECT test_1.ID
FROM test_1
WHERE test.Personalnummer = test_1.Personalnummer
AND (test.Meldedatum + test.Meldezeit - test_1.Meldedatum - tblbdeall_1.Meldezeit) < 61/86400);
Meldung ist immer: Ich soll die Tabelle mit den zu löschenden Daten angeben....? Hab doch, dachte ich zumindest.
Bin für Hilfe sehr dankbar!
ich habe folgende Herausforderung, die mir als SQL-Anfänger ganz schön Kopfzerbrechen bereitet:
Eine Tabelle Test hat die Felder ID (Autowert), Personalnummer, Meldedatum und Meldezeit.
Ich möchte nun das Feld Personalnummer in Zeile 1 mit dem in Zeile 2 vergleichen. FAlls die beiden gleich sind, sollen das Meldedatum aus Zeile 1 und 2 verglichen werden. Als dritter Vergleich soll geprüft werden, ob zwischen den beiden Zeitstempeln weniger als 61 Sekunden vergangen sind. Wenn das auch noch der Fall ist soll der erste Datensatz gelöscht werden. Der zweite Datensatz dient im Folgenden Durchlauf als Vergleichsmaßstab für Zeile 3.
Die Tabelle ist so sortiert, das es damit funktioniert. Meine bisherigen Versuche sehen so aus:
DELETE *
FROM test, test AS test_1
WHERE EXISTS
(SELECT test_1.ID
FROM test_1
WHERE test.Personalnummer = test_1.Personalnummer
AND (test.Meldedatum + test.Meldezeit - test_1.Meldedatum - tblbdeall_1.Meldezeit) < 61/86400);
Meldung ist immer: Ich soll die Tabelle mit den zu löschenden Daten angeben....? Hab doch, dachte ich zumindest.
Bin für Hilfe sehr dankbar!
Comment