Extreme Veteran
Beiträge: 565
| Hallo,
BamBam - 13.04.18 09:04
Meine Datenbank soll mir alle Abschnitte einer Strecke mit dem letzten Datum anzeigen. [...]
SELECT Betreiber.Betreiber, Abschnitt.IDAbschnittsnamen, Abschnitt.Abschnittsbezeichnung, Messung.Datum AS Datum
FROM (Betreiber INNER JOIN (Messung INNER JOIN StammStrecke ON Messung.StammStrecke = StammStrecke.IDStammStrecke) ON Betreiber.IDBetreiber = Messung.Betreiber)
INNER JOIN Abschnitt ON StammStrecke.IDStammStrecke = Abschnitt.StammStrecke
where Messung.Datum = (Select Max(Messung.Datum) From Messung)
GROUP BY Betreiber.Betreiber, Abschnitt.IDAbschnittsnamen, Abschnitt.Abschnittsbezeichnung, Messung.Datum, Messung.Streckennamen
HAVING (Betreiber.Betreiber)=[Formulare]![Menü]![cboBetreiber])
ORDER BY Betreiber.Betreiber, Messung.Streckennamen;
Probier mal (ab WHERE):
WHERE Messung.Datum = (Select Max(M.Datum) From Messung AS M WHERE M.StammStrecke=Messung.StammStrecke)
AND (Betreiber.Betreiber)=[Formulare]![Menü]![cboBetreiber])
GROUP BY Betreiber.Betreiber, Abschnitt.IDAbschnittsnamen, Abschnitt.Abschnittsbezeichnung, Messung.Datum, Messung.Streckennamen
ORDER BY Betreiber.Betreiber, Messung.Streckennamen;
(ungetestet)
Betreiber ist kein aggregierter Wert, d.h. du brauchst kein HAVING, denn dieses wird auf das Ergebnis angewendet, während WHERE bereits die Quelle filtert.
----- Gruss - Peter |