Du hast recht, mit Join kann man schon einiges erreichen...
Code:
SELECT tblFahrzeuge.Fahrzeugkennung, tblFahrzeuge.ReserveFahrzeug, tblReserveFahrzeugAbgabe.AbgabeDatum, tblReserveFahrzeugAbgabe.Nachricht, tblReserveFahrzeugAbgabe.RueckgabeDatum
FROM tblFahrzeuge
LEFT JOIN tblReserveFahrzeugAbgabe ON tblFahrzeuge.FahrzeugID = tblReserveFahrzeugAbgabe.FahrzeugID
WHERE tblFahrzeuge.ReserveFahrzeug=True;
Mit dieser Abfrage werden immer alle verfügbaren Fahrzeuge angezeigt und wenn existent auch der entsprechende Datensatz aus der "Leihliste". Der Datensatz aus der Leihliste soll aber nur angezeigt werden, wenn das Rückgabedatum nicht eingetragen ist (das Fahrzeug wurde verliehen und wurde noch nicht zurück gebracht)
Also z.B. so ein Ergebnis:
Code:
Fzg: Datum: Text: Rückgabe
RTW 4-R 01.12.2012 an FW6 10.12.2012 <--- das soll nicht so
RTW 4-5 10.11.2012 an FW10 (noch nicht zurück) <--- das soll so
WLF 4-1 - <--- das soll auch so
Wenn ich aus
Code:
WHERE tblFahrzeuge.ReserveFahrzeug=True; z.B.
Code:
WHERE tblFahrzeuge.ReserveFahrzeug=True AND IsNull(tblReserveFahrzeugAbgabe.RueckgabeDatum)=True;
mache, hat das zur Folge das folgendes Ergebnis heraus kommt:
Code:
Fzg: Datum: Text: Rückgabe
WLF 4-1 -
(weil dies das einiges Fahrzeug ist für das es keinen Datensatz in der zweiten Tabelle gibt, bzw. wo o.g. Bedingung zutrifft)
D.h. folgendes Ergebnis wäre mein Wunsch:
Code:
Fzg: Datum: Text: Rückgabe
RTW 4-R - (selbe wie oben, aber da ein Rückgabedatum eingetragen ist wird nur der Fahrzeugname angezeigt)
RTW 4-5 10.11.2012 an FW10 (noch nicht zurück)
WLF 4-1 -
Wird es jetzt eindeutiger?
MfG pL