Ich möchte Mitglieder aus einer Personaltabelle auslesen, die in einem bestimmten Zeitraum angestellt waren oder sind. Dazu habe ich folgende Abfrage erstellt.
Das Problem besteht im letzten Teil der Abfrage.
Wenn im Feld PERADA einen "0" steht, also kein Datum eingetragen ist dann soll er den Wert auf "20991231" stellen und ansonsten den Feldwert beibehalten und dann mit dem übergebenn "Endedatum" auf größer oder gleich vergleichen. Leider bekomme ich da immer eine Fehlermeldung. Ist die Abfrage so gar nicht umsetzbar, oder gibt es eine andre Möglichkeit zu einer Lösung zu kommen?
Danke für Eure Unterstützung
Lg
DavZin
Code:
SELECT ".$ztbib.".PER.PERNR, ".$ztbib.".PER.PERNAM, ".$ztbib.".PER.PERTEM FROM ".$ztbib.".PER WHERE (".$ztbib.".PER.PEREDA BETWEEN '".$selstart."' AND '".$ende."') OR (".$ztbib.".PER.PERADA BETWEEN '".$selstart."' AND '".$ende."') OR (".$ztbib.".PER.PEREDA <= '".$selstart."' AND IF ".$ztbib.".PER.PERADA = '0' THEN '20991231' ELSE ".$ztbib.".PER.PERADA END AS AUSTRITT >= '".$ende."') ORDER BY ".$ztbib.".PER.PERTEM ASC
Das Problem besteht im letzten Teil der Abfrage.
Wenn im Feld PERADA einen "0" steht, also kein Datum eingetragen ist dann soll er den Wert auf "20991231" stellen und ansonsten den Feldwert beibehalten und dann mit dem übergebenn "Endedatum" auf größer oder gleich vergleichen. Leider bekomme ich da immer eine Fehlermeldung. Ist die Abfrage so gar nicht umsetzbar, oder gibt es eine andre Möglichkeit zu einer Lösung zu kommen?
Danke für Eure Unterstützung
Lg
DavZin