Hallo,
Für Leute die es interessiert... ich hab selbst nach ner schlaflosen Nacht ne Lösung gefunden ;)
SELECT f.name, h.beschreibung, MAX(h.zeitpunkt)
FROM fall AS f, fall_historie AS h
WHERE
f.id = h.fall_id
AND $zeitpunkt >= h.zeitpunkt
GROUP BY h.fall_id
interessant, was so alles geht ;)
Geht das wirklich?
Die GROUP BY - Anweisung gruppiert Datensätze der gejointen Datensatzmenge und fasst solche mit gleicher fall_id zu einem Datensatz zusammen. Dabei wird das Maximum von h.zeitpunkt innerhalb der zusammengefassten Datensätze ermittelt. Der Wert für f.name ist der, welcher der id des Gruppenkriteriums h.fall_id entspricht. Laut ANSI-SQL müsste, könnte hier auch, f.name mit im GROUP BY stehen. Soweit gut.
Welche Werte allerdings der gruppierte, zusammengefasste Datensatz für h.beschreibung hat, ist unbestimmt, da es ja in der Gruppe mehrere Datensätze mit unterschiedlichen Werten in h.beschreibung geben kann. Speziell muss es nicht so sein, dass der Wert für h.beschreibung der ist, welcher in dem Datensatz steht, der auch das Maximum von h.zeitpunkt innerhalb der zusammengefassten Datensätze enthält. Es kann im Prinzip jeder beliebige Wert für h.beschreibung innerhalb der zusammengefassten Datensätze sein.
viele Grüße
Axel