Hallo Leute,
ich habe ein Problem.
Und zwar hab ich zwei Tabellen (Person, Lehrgänge). Diese sind über eine Tabelle "Nimmt_Teil" miteinander verknüpft.
Mein Ziel ist nun, dass ich alle Personen rausfiltere, deren Lehrgänge 2 Jahre zurückliegen (ausgehend vom aktuellen Jahr)
Das ist mein bisheriges Resultat:
SELECT Person.person_id, Person.hfnr, Person.mitgliedsnr, Person.anrede, Person.vname, Person.name AS Person_name, Lehrgang.lehrgang_id, Lehrgang.lehrgang_art_id, Lehrgangsart.name AS Lehrgangsart_name, Lehrgang.lehrgang_beginn, Lehrgang.lehrgang_ende
FROM Person, Lehrgangsart, Lehrgang, Nimmt_Teil
WHERE Lehrgang.lehrgang_id=Nimmt_Teil.lehrgang_id AND Lehrgangsart.lehrgang_art_id=Lehrgang.lehrgang_art _id AND Person.person_id=Nimmt_Teil.person_id
AND (((Year(Date())-
(SELECT max(year([Lehrgang.lehrgang_beginn])) FROM Lehrgang INNER JOIN Nimmt_Teil ON Lehrgang.lehrgang_id = Nimmt_Teil.lehrgang_id WHERE Nimmt_Teil.person_id=Person.person_id)))=2);
In der WHERE-Bedingung will ich vom aktuellen Jahr das Jahr aus dem SubSelect abziehen (also das jahr, in der die jeweilige Person ihren letzten Lehrgang absolviert hat) und diesen Wert mit 2 vergleichen.
Sollte eigentlich von der Logik her funktionieren. Problem ist nur, dass Access mir alle Personen ausspukt, die es gibt.
Könnt ihr mir da evtl helfen?
Danke schon einmal.
Gruß Sign
ich habe ein Problem.
Und zwar hab ich zwei Tabellen (Person, Lehrgänge). Diese sind über eine Tabelle "Nimmt_Teil" miteinander verknüpft.
Mein Ziel ist nun, dass ich alle Personen rausfiltere, deren Lehrgänge 2 Jahre zurückliegen (ausgehend vom aktuellen Jahr)
Das ist mein bisheriges Resultat:
SELECT Person.person_id, Person.hfnr, Person.mitgliedsnr, Person.anrede, Person.vname, Person.name AS Person_name, Lehrgang.lehrgang_id, Lehrgang.lehrgang_art_id, Lehrgangsart.name AS Lehrgangsart_name, Lehrgang.lehrgang_beginn, Lehrgang.lehrgang_ende
FROM Person, Lehrgangsart, Lehrgang, Nimmt_Teil
WHERE Lehrgang.lehrgang_id=Nimmt_Teil.lehrgang_id AND Lehrgangsart.lehrgang_art_id=Lehrgang.lehrgang_art _id AND Person.person_id=Nimmt_Teil.person_id
AND (((Year(Date())-
(SELECT max(year([Lehrgang.lehrgang_beginn])) FROM Lehrgang INNER JOIN Nimmt_Teil ON Lehrgang.lehrgang_id = Nimmt_Teil.lehrgang_id WHERE Nimmt_Teil.person_id=Person.person_id)))=2);
In der WHERE-Bedingung will ich vom aktuellen Jahr das Jahr aus dem SubSelect abziehen (also das jahr, in der die jeweilige Person ihren letzten Lehrgang absolviert hat) und diesen Wert mit 2 vergleichen.
Sollte eigentlich von der Logik her funktionieren. Problem ist nur, dass Access mir alle Personen ausspukt, die es gibt.
Könnt ihr mir da evtl helfen?
Danke schon einmal.
Gruß Sign
Comment