auslesen einer bestimmten Anzahl

Frarr

Mitglied
Hallo,
ich habe ein Problem beim auslesen einer Tabelle aus MS Access 2000.
Meine Tabelle hat n Spalten wobei eine davon ein Datum beinhaltet . Ich möchte nun alle Spalten der 4 Einträge erhalten die am nächsten zum aktuellen Datum stehen.
Das Aktuelle Datum soll mit dem in der Tabelle befindlichen abgeglichen werden.

Beispiel:

Ursprungstabelle

Name------------------- Datum
Müller--------------------12.04.1980
Holz----------------------24.11.1975
Schwarz----------------15.08.1960
Gelb---------------------21.04.1953
Grün---------------------01.02.1940

Ausgabe der Abfrage soll so aussehen

Name---------------------Datum
Müller---------------------12.04.1980
Holz-----------------------24.11.1975
Schwarz-----------------15.08.1960
Gelb-----------------------21.04.1953


Ich habe leider keine Lösung für dieses Problem finden können und hoffe das mir jemand helfen kann der in dieser richtung mehr bewandert ist. :)
vielen Dank
 
Du meinst n Zeilen, nicht Spalten.

Für MySql verwendest Du am besten die Funktion curDate() zur Ermittlung des aktuellen Tagesdatums, dann solltest du

hiermit ALLE Einträge, sortiert nach Abstand zum Tagesdatum erhalten
SELECT * FROM TABELLE
ORDER BY CurDate()-DATUM

Wenn Du nur die ersten x Einträge wünscht könntest du unter MySql LIMIT verwenden.
vop
 
Erstmal danke für deine Antwort! :)

Das erste Problem "das sortieren" wäre damit gelöst....
Das andere leider nicht da es in Access ja kein limits gibt....
Existiert die Möglichkeit "direkt" eine Zeile auszulesen
Gib mir die zweite Zeile ?
Kann so etwas ausgegeben werden?
Oder gibt es noch einen cleveren Weg um die ausgabe auf eine bestimmte Menge zu beschränken?
 
SELECT TOP n .....

sollte Dir weiterhelfen.

Die n-te Zeile findest Du, wenn Du ein Recordset verwendest, und Dich darin mittels Move-Methode bewegst.


Mfg, Michael
 
Du kannst natürlich auch die maximale Differenz zum aktuellen Datum mit in die WHERE-Bedingung schreiben

SELECT....

WHERE CurDate()-Datum < 123

würde nur die Daten liefern, die nicht älter als 123 Tage sind.

Übrigens CurDate() wird by Access sicher anders heißen
Sysdate, sysdatetime, date, time, now oder irgendwie
Bin leider kein Access-User
vop
 
hi,
vielen dank für eure Hilfe, habe mein Problem lösen können :)



Der Befehl heißt in Access date und das ganze funktioniert wunderbar.


nochmal danke :)
 
Zurück