Vinzenz Mai: select max() geht nicht

Beitrag lesen

Hallo Carla,

Hier meine Abfrage:
SQL_DATE = "select max(woche) as Woche, max(Jahr) as Jahr, ID, Ort from Handel where Ort = '" & RS_ID("Ort_Grob") & "' group by woche, jahr, ID, Ort"

Als erstes wirfst Du zum Debuggen Nicht-SQL-Code raus. D.h. teste Deine Anweisung im Abfrageeditor von Access. Da dieser meiner Erfahrung nach nur beschränkt zum Editieren von Abfragen tauglich ist, schreibe Deine Anweisung in den Texteditor Deiner Wahl und füge ihn ins SQL-Fenster von Access ein.

Diese Abfrage gibt mir einfach einen Wert zurück, aber nicht den max-Wert. Woche und Jahr sind als Zahl definiert. Kann mir bitte jemand sagen, was falsch ist?

Woche und Jahr als Zahl zu definieren, ist gar keine gute Idee. Die Kalenderwoche ergibt sich aus dem Datum. Soweit ich mich erinnere verfügt MS Access ähnlich wie MySQL über ein enorm umfangreiches Sortiment an Funktionen, die man in Abfragen einbauen kann. Vor allem läßt sich der Funktionsumfang über VBA wirklich bequem erweitern.

Hmm, schauen wir uns ein Beispiel an

ID woche Jahr Ort
--------------------
 1    17 2006 Hamburg
 7    50 2005 Hamburg
 3    23 2005 Berlin
 5     1 2006 Hamburg

Ich vermute, das von Dir gewünschte Ergebnis sieht für den Ort Hamburg wie folgt aus:

ID woche Jahr Ort
--------------------
 1    17 2006 Hamburg   -- höchste Woche im Jahr 2006
 7    50 2005 Hamburg   -- höchste Woche im Jahr 2005

Wäre dies so? Wenn ja, dann benötigst Du eine Unterabfrage. Die gute Nachricht dazu ist, dass Jet-SQL, der SQL-Dialekt von MS Access, Unterabfragen unterstützt. Wie das prinzipiell geht, kannst Du folgendem Archivposting entnehmen. Lass Dich nicht davon abschrecken, dass da MySQL steht, das geht unter MS Access ganz genauso.

Freundliche Grüße

Vinzenz