-
[ Voor 99% gewijzigd door Verwijderd op 09-08-2013 12:08 ]
Siditamentis astuentis pactum.
Daar heeft SQL OVERLAPS voor. Je maakt niet helemaal duidelijk hoe je schema er precies uit ziet, maar het zou zoiets als het volgende moeten zjn:Verwijderd schreef op 01 december 2003 @ 13:36:
Er is een reservering tussen 1-1-2003 en 1-1-2004.
Nu krijg ik de datum 1-5-2003 tot 1-6-2003 binnen.... hoe krijg ik het nou voor elkaar dat hij toch doorheeft dat dat huisje gererveerd is...
1
2
3
| SELECT plaatsnr FROM "boeking" WHERE NOT (boekverblijfvan, boekverblijftot) OVERLAPS (:beginDatum, :eindDatum) |
enCheck of de einddatum van de gewenste reservering kleiner is dan de begindatum van de bezette reserveringen, of dat de begindatum van de gewenste reservering groter is dan de einddatum van de bezette reserveringen.
Dat checkte we voor zover ik zie al... Hier mis je volgens mij dus de reserveringen die heel lang zijn. Zoals die van het voorbeeldDe periode waarin de gebruiker wil reserveren mag niet een begin- of einddatum van een reservering bevatten.
All right... SQL OVERLAPS .... dat was ik waarschijnlijk aan het zoeken.... Ik zal eens gaan zoeken.Er is een reservering tussen 1-1-2003 en 1-1-2004.
Nu krijg ik de datum 1-5-2003 tot 1-6-2003 binnen.... hoe krijg ik het nou voor elkaar dat hij toch doorheeft dat dat huisje gererveerd is...
1
2
3
| SELECT plaatsnr FROM "boeking" WHERE NOT (boekverblijfvan, boekverblijftot) OVERLAPS (:beginDatum, :eindDatum) |
1
2
3
4
5
6
7
| P1 P2
tijdlijn ---------|---------------|---------
A----|---B |
| C--|-----D
| E------F |
G----|---------------|-------H
| | |
Today's subliminal thought is:
Verwijderd
[ Voor 26% gewijzigd door Verwijderd op 01-12-2003 22:53 ]