Abfrage der "neuesten" Werte (mit SQL?)

23/11/2008 - 15:45 von Michael König | Report spam
Hallo,

Folgende Ausgangssituation in A2000:
1 Tabelle mit 2 Feldern: "Aktion" (Text) und "war am" (Datum)
Die Aktionen kommen mehrfach vor jeweils mit unterschiedlichem Datum
Beispiel: "Waschen" 23.10.08
"Föhnen" 23.10.08
"Waschen" 25.10.08
"Legen" 25.10.08
"Waschen" 26.10.08 usw.

Nun möchte ich eine Abfrage erstellen, in der jede Aktion genau einmal
erscheint und zwar immer die aktuelleste, also im Beispiel
"Waschen" 26.10.08
"Föhnen" 23.10.08
"Legen" 25.10.08

Mit "SELECT DISTINCT ... " bzw. "SELECT DISTINCTROW ..." komme ich nicht
zum gewünschten Ergebnis, weil es eben keine Duplikate gibt. Wie muss
ich die Abfrage bilden, um mein gewünschtes Ergebnis zu erreichen?

Danke im voraus für Eure Unterstützung.

Einen schönen (Rest-)Sonntag wünscht
Michael König
 

Lesen sie die antworten

#1 Karl Donaubauer
23/11/2008 - 15:55 | Warnen spam
Michael König wrote:
Folgende Ausgangssituation in A2000:
1 Tabelle mit 2 Feldern: "Aktion" (Text) und "war am" (Datum)
Die Aktionen kommen mehrfach vor jeweils mit unterschiedlichem Datum
Beispiel: "Waschen" 23.10.08
"Föhnen" 23.10.08
"Waschen" 25.10.08
"Legen" 25.10.08
"Waschen" 26.10.08 usw.

Nun möchte ich eine Abfrage erstellen, in der jede Aktion genau einmal
erscheint und zwar immer die aktuelleste, also im Beispiel
"Waschen" 26.10.08
"Föhnen" 23.10.08
"Legen" 25.10.08

Mit "SELECT DISTINCT ... " bzw. "SELECT DISTINCTROW ..." komme ich nicht
zum gewünschten Ergebnis, weil es eben keine Duplikate gibt. Wie muss
ich die Abfrage bilden, um mein gewünschtes Ergebnis zu erreichen?
...



SELECT t1.Aktion, t1.AktionsDatum
FROM Tabelle As t1
WHERE AktionsDatum(SELECT Max(AktionsDatum)
FROM Tabelle
WHERE Aktion = t1.Aktion)

Wobei ich mir erlaubt habe, dem Datumsfeld einen Namen ohne
Leerzeichen zu verpassen, was dringend anzuraten ist.
s.a. www.donkarl.com?FAQ1.5

HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com

Ähnliche fragen