PDA

Vollständige Version anzeigen : Aggregatfunktion


fismic
11.07.2001, 10:00
Hallo an Alle,

in einer Tabelle existieren folgende Felder:
Artikelnr, Eingangsdatum, und Ausgangsdatum.
In der Tabelle sind 2 oder mehr Datensätze gelistet die gleiche Artikelnummer und Buchungsdatum enthalten aber ein unterschiedliches Ausgangsdatum. Nun sollen die Datensätze aus der Tabelle entfernt werden, bei denen der zeitliche Abstand zwischen Eingangsdatum und Ausgangsdatum nicht minimal ist, dh. es soll nur noch
ein Datensatz je Artikelnummer existieren.

Alle meine Versuche scheitern bisher an der
Fehlermeldung, daß Aggregatfunktionen in Where-Klauseln nicht möglich sind.

Vielleicht denke ich auch nur in die falsche Richtung...

Danke für jedwede Unterstützung

Kurt aus Kienitz
11.07.2001, 10:12
Hallo,

Was ist den mit bei denen der zeitliche Abstand zwischen Eingangsdatum und Ausgangsdatum nicht minimal ist heißen ?

Es sollen nurnoch die Buchungen mit dem jüngsten Ein-/Ausgangsdatum enthalten sein ?

Was wenn es folgende Daten gibt:
Artikel-Nr, Eingang, Ausgang
4711, 01.01.2001, 10.07.2001
4711, 01.07.2001, 08.07.2001

Viele Fragen.

fismic
11.07.2001, 11:53
Ich habe mir das ein wenig anders vorgestellt:

Ausgangssituation:
Artikel-Nr, Eingang, Ausgang
4711, 01.01.2001, 12.07.2001
4711, 01.01.2001, 10.07.2001
4711, 01.01.2001, 08.07.2001

Aus der Tabellen sollen jetzt die Datensätze
entfallen mit Ausgangsdatum 12.7 und 10.7
(Weil der zeitl. Abstand zwischen 01.01 und 08.07 am kürzesten ist bzw. nicht minimal ist)

Gruß

fismic

Kurt aus Kienitz
11.07.2001, 12:31
Hallo,

Probier es mal so.

Erstelle eine Abfrage, in der auch die Datumsdifferenz enthalten ist.
Abfrage1
SELECT ArtikelNr, Eingang, Ausgang, DateDiff("d",Eingang, Ausgang) As DiffTage
FROM DeineTabelle;

Dann eine zweite zum Löschen:

DELETE FROM DeineTabelle
WHERE DateDiff("d",Eingang, Ausgang) > DMin("[DiffTage],"Abfrage1","[ArtikelNr]=" & _
Str$(DeineTabelle.ArtikelNr));

Ich bin mir bei DateDiff nie sicher, wie das Vorzeichen aussieht, darum solltest Du erstmal trocken üben :)

HTH