Guten Abend, ich programmiere mir derzeit eine kleine Reservierungssoftware und stehe gerade heftigst auf dem Schlauch (vielleicht wegen der späten Uhrzeit? ). Auf meinem RPi liegt eine SQL Datenbank. Hier sind meine Zimmerreservierungen angelegt. Sagen wir das System ist das gleiche wie beim Hotel:
X ist meine zu überprüfende Anreise
Y meine zu überprüfende Abreise.
Die An- und Abreisen sind in den Spalten Anreise, Abreise festgelegt.
Habe mir heute in der Schule gedanken darüber gemacht und festgestellt, dass das eigentlich ganz einfach ist. Aber irgendwie sitze ich jetzt schon Stunden vor und komme auf keine brauchbare Lösungen..
Bedingungen:
X darf nicht zwischen Anreise und Abreise einer Buchung sein.
X darf gleich Abreise einer Buchung sein:
| |
| | !!!
| | OK (Halt wie in nem Hotel)
Y darf nicht zwischen Anreise und Abreise einer Buchung sein.
Y darf gleich Anreise einer anderen Buchung sein.
Habe mir letzte Woche in der Schule gedanken darüber gemacht und festgestellt, dass das eigentlich ganz einfach ist. Aber irgendwie sitze ich jetzt schon Stunden vor und komme auf keine brauchbare Lösungen..:
Das funktioniert so. Einziges Problem aufgrund der BETWEEN Befehle ist, dass die Überschneidungen falsch erkannt werden und ich komme einfach nicht auf eine Lösung.
Beispiel: Anreise: 03.03.03 Abreise: 03.05.03
Abfrage für: Anreise:03.05.03 Abreise: xx.xx.xx
Meine Software prüft ob das erhaltene Array der Abfrage gleich 0 ist. Es müsste nun eigentlich Null sein und eine Reservierung dürfte stattfinden. Ist es aber leider nicht, da die Between Befehle ja einschließlich der Grenzen prüfen. Ich glaube die Lösung ist leichter als ich mir das Vorstelle, vielleicht denke ich auch einfach zu kompliziert.. Eigentlich müsste ich das ganze mit Vergleichsoperatoren lösen können aber den Versuch habe ich auch schon hinter mir.... Ich hoffe mir kann jemand weiter helfen.
Vielen Dank im vorraus!!!
X ist meine zu überprüfende Anreise
Y meine zu überprüfende Abreise.
Die An- und Abreisen sind in den Spalten Anreise, Abreise festgelegt.
Habe mir heute in der Schule gedanken darüber gemacht und festgestellt, dass das eigentlich ganz einfach ist. Aber irgendwie sitze ich jetzt schon Stunden vor und komme auf keine brauchbare Lösungen..
Bedingungen:
X darf nicht zwischen Anreise und Abreise einer Buchung sein.
X darf gleich Abreise einer Buchung sein:
| |
| | !!!
| | OK (Halt wie in nem Hotel)
Y darf nicht zwischen Anreise und Abreise einer Buchung sein.
Y darf gleich Anreise einer anderen Buchung sein.
Habe mir letzte Woche in der Schule gedanken darüber gemacht und festgestellt, dass das eigentlich ganz einfach ist. Aber irgendwie sitze ich jetzt schon Stunden vor und komme auf keine brauchbare Lösungen..:
Code:
SELECT * FROM Reservierungen
WHERE (('X' BETWEEN Anreise AND Abreise)
OR (Anreise BETWEEN 'X' AND 'Y')
OR (Abreise BETWEEN 'X' AND 'Y'))
AND Zimmer='%Zimmer%';
Das funktioniert so. Einziges Problem aufgrund der BETWEEN Befehle ist, dass die Überschneidungen falsch erkannt werden und ich komme einfach nicht auf eine Lösung.
Beispiel: Anreise: 03.03.03 Abreise: 03.05.03
Abfrage für: Anreise:03.05.03 Abreise: xx.xx.xx
Meine Software prüft ob das erhaltene Array der Abfrage gleich 0 ist. Es müsste nun eigentlich Null sein und eine Reservierung dürfte stattfinden. Ist es aber leider nicht, da die Between Befehle ja einschließlich der Grenzen prüfen. Ich glaube die Lösung ist leichter als ich mir das Vorstelle, vielleicht denke ich auch einfach zu kompliziert.. Eigentlich müsste ich das ganze mit Vergleichsoperatoren lösen können aber den Versuch habe ich auch schon hinter mir.... Ich hoffe mir kann jemand weiter helfen.
Vielen Dank im vorraus!!!
Zuletzt bearbeitet von einem Moderator: