Extreme Veteran
Beiträge: 572
| Hallo,
BamBam - 17.04.18 16:35
Ich habe jetzt eine Testdatenbank erstellt mit 3 Abfragen mit Hilfe der Access Oberfläche und ohne den Code manuell zu verändern. Hier hat Access wieder das having benutzt.
Dennoch sollte das Beispiel klar sein.
Die Strecke wird richtig dargestellt. Alle weiteren Abfragen nicht.
Ich hatte aus deiner Beschreibung ein falsches Feld für die Eingrenzung abgeleitet. Folgende Abfrage liefert den jeweils nach Datum letzten Abschnitt pro Streckennamen:
SELECT Betreiber.Betreiber, Messung.Datum, Messung.Streckennamen, StammStrecke.Abschnitte
FROM ((Betreiber INNER JOIN Messung ON Betreiber.IDBetreiber = Messung.Betreiber) INNER JOIN StammStrecke ON Messung.StammStrecke = StammStrecke.IDStammStrecke) INNER JOIN Abschnitte ON StammStrecke.IDStammStrecke = Abschnitte.StammStrecke
WHERE Messung.Datum=(Select Max(M.Datum) From Messung AS M WHERE M.Streckennamen=Messung.Streckennamen)
GROUP BY Betreiber.Betreiber, Messung.Datum, Messung.Streckennamen, StammStrecke.Abschnitte
ORDER BY Betreiber.Betreiber;
Die Abfrage funktioniert in der Test-DB. Dort heissen aber einige Tabellen u. Felder anders als in dem Thread bisher verwendet wurde, z.B. Abschnitt vs. Abschnitte, Strecke vs. Streckennamen usw. Desweiteren habe ich den Formularbezug aus der WHERE-Bedingung entfernt. Aber das solltest du schon hinkriegen. ;-)
PS: HAVING setzt der Abfrage-Editor, wenn du ein Kriterium direkt unter dem anzuzeigenden Feld eingibst. Du kannst das Feld aber auch als reine Bedingung angeben, ohne dass es angezeigt wird, siehe Anlage.
Anhänge ---------------- LetzterAbschnitt.png (77KB - 5 downloads)
----- Gruss - Peter |