[Acc2003/SQL] Suche mit Datum

Hallo,

Der allgemeine Teil:
Ich habe eine DB in der für verschiedene Technologien Daten abgelegt werden.
Eine Technologie benötigt mehrere Prozesschritte (=LAYER) um hergestellt zu werden.Jeder Layer benötigt mehrere Parameter mit Values um den Layer zu realisieren.
Es gibt eine table History in der das Datum,Parameter,oldValue usq. abgelegt sind wenn Values von Parametern geändert wurden.

Meine Aufgabe:
Der User soll ein Suchdatum vorgeben und dazu sollen die Daten aus der Table History gefiltert werden.Ich habe zum testen den 5.10 vorgegebn.wenn ein parameter dieses datum nicht enthält soll das nächst ältere genommen werden.
Damit soll der User dann den Parameterstand zu seinem gewünschten Datum bekommen mit Values.

Mein Lösungsvorschlag:
Ich denke man müsste nach dem Datum (When) absteigend sortieren:

http://bildupload.westfale.org/upload/1191584607.jpg
http://bildupload.westfale.org/upload/1191584617.jpg
http://bildupload.westfale.org/upload/1191584619.jpg

Als nächstes müsste man die Layer gruppieren.Und in den Layer gruppen darf jeder Parameter nur EINMAL vorkommen mit dem Value, nämlich der der mit seinem Datum dem Suchdatum am nächsten kommt.Das könnte man mit Top 1 oder so machen.

Meine Frage:
Bei mir scheitert es leider an der Umsetzung.Könnte mir jemand bitte mit auf die Sprünge helfen?Das mit der Gruppierung krieg ich nicht hin z.B.
Geht das mit einer query überhaupt?oder brauch ich 2 oder so.
Gibt es einen bessereren Lsg.Weg?

Danke!

VG

servus, auf die gefahr hin, dis ich dein problem nicht richtig durchschaut habe…

ich rate dir, füge deiner tabelle einafch eine neue spalte hinzu, und nen sie date, dort machste den dateityp „timestamp“

http://www.schattenbaum.net/php/datum.php

das wäre die erklärung für die entsprechende PHP funktion, da ich nicht genau weiß, wie du deine db ansprichst musst du das equivalent raussuchen…

den query kannste dann quasi so machen:

$result = mysql_query ("SELECT FROM WHERE(datum machen, jenachdem ob dus größer oder kleiner willst…). das LIMIT 1 verhindert, das du mehrere results bekommst, soltle der fall "[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke Dir erstmal für Deine Antwort.

Ich versteh deinen LSg.Vorschlag nicht richtig.
Ein Feld mit Datum exisitiert ja schon „When“.Wie auch im Screenshot zu sehen ist.So wie es jetzt ist kann ich nicht nach Top1 suchen, ich muss ja vorher erst gruppieren nach den LAyern wo ich nicht weiß wies geht.

Ich programmiere unter Access2003 also in VBA, aber Top 1 gibts da auch.

VG

ja gut, kann sein dis ich mich noch nicht ganz so deutlich gefasst habe, ich probiers mal etwas leichter…

viele nutzer vom internet greifen viel zu gerne auf für sie evrständliche algorithmen zurück, die sie aus dem alltag kennen, bsp. datum 16.11.1988 (mein bday), genausogut kann ich aber auch „595638000“ sagen, dis ist eine zahl, mit der der computer rechnet, er zählt die sekunden vom 1.1.1930 ab (international festgelegt)

natürlich kannst du genauso dein „datum“ in der db abspeichern, dis du schon nen datumfeld hattest ahb ich übersehen, mein fehler^^

über den timestamp kannst du dann ganz einfach überprüfen, welches datum eher bzw. später war… ich meine, in access (hab ich dis richtig gesehen?) gibt es für timestamp->normalzeit sogar ne umrechenfunktion…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]