Hallo,
ich bin normaler Access-2003-Nutzer, erstelle Abfragen mit der Entwurfsansicht.
Folgendes Problem:Ich habe 2 Tabellen, eine Tabelle Personen mit entsprechender ID
PersonenID;Nachname;Vorname
und eine Tabelle Aktivitäten mit der PersonenID und Aktivitäten in einem Zeitraum (Datum von - bis)
PersonenID;von;bis;Aktivität
Nicht alle Personen aus der Personentabelle haben eine Aktivität, einige haben jedoch mehrere in unterschiedlichen Zeiträumen. Die Aktivitätentabelle ist sortiert nach PersonenID und Datum absteigend, die aktuellste Aktivität ist also oben.
Als Ergebnis hätte ich gern eine Tabelle mit allen Personen, die eine Aktivität haben und dann immer nur die aktuellste. Ich habe die Tabellen mit Verknüpfung Typ 2 verbunden und bei den Aktivitäten-Feldern „erster Wert“ als Funktion genommen. Das klappt aber nicht wirklich, da bei vielen Personen auch ältere Aktivitäten angezeigt werden. Das SQL sieht so aus:
SELECT Personen.PersonenID, Personen.Nachname, Personen.Vorname, First(Aktivitäten.von) AS ErsterWertvonvon, First(Aktivitäten.bis) AS ErsterWertvonbis, First(Aktivitäten.Aktivität) AS ErsterWertvonAktivität
FROM Personen LEFT JOIN Aktivitäten ON Personen.PersonenID = Aktivitäten.PersonenID
GROUP BY Personen.PersonenID, Personen.Nachname, Personen.Vorname
HAVING (((First(Aktivitäten.Aktivität)) Is Not Null));
Ich hoffe, ihr habt einen Tip für mich. Vielen Dank vorab!!!