Beachten Sie Folgendes, um nach allen Zimmern zu suchen, die in einem bestimmten Zeitraum keine Buchungen haben:
SELECT roomID FROM room WHERE roomID NOT IN(
SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)
Was passiert da?
In der inneren Abfrage durchsuche ich die Reservierungsliste nach Reservierungen, die zumindest teilweise innerhalb des erforderlichen Zeitraums liegen, und erhalte deren Zimmer-IDs. Und dann fordere ich in der äußeren Abfrage aus der Zimmertabelle alle Zimmer-IDs an, die NICHT aufgeführt sind, also keine Reservierung haben, die zumindest teilweise im geforderten Zeitraum liegt.
@StartDate und @EndDate müssten von Ihnen modifiziert werden - Sie müssen Ihre Variablen dort ablegen.