Announcement

Collapse
No announcement yet.

Löschabfrage in einer Tabelle inkl. Feldvergleich

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Löschabfrage in einer Tabelle inkl. Feldvergleich

    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!

  • #2
    Probier mal

    [highlight=sql]
    DELETE TEST
    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);
    [/highlight]
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment


    • #3
      Läuft

      Danke! Muss nur noch die Tabelle teilen, weil der REchner bei 1 Mio Datensätzen freckt.

      Comment

      Working...
      X