Houd rekening met het volgende om te zoeken naar alle kamers die geen boekingen hebben in een bepaald tijdsbestek:
SELECT roomID FROM room WHERE roomID NOT IN(
SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)
Wat gebeurt daar?
In de innerlijke vraag zoek ik in de reserveringslijst naar reserveringen die op zijn minst gedeeltelijk binnen het vereiste tijdsbestek vallen en krijg ik hun kamer-ID's. En dan, in de buitenste vraag, vraag ik van de kamertafel alle kamer-ID's die NIET worden vermeld, dat wil zeggen, ze hebben geen reservering die op zijn minst gedeeltelijk binnen het vereiste tijdsbestek valt.
@StartDate en @EndDate zouden door u moeten worden gewijzigd - u moet uw variabelen daar plaatsen.