Chcete-li vyhledat všechny pokoje, které v určitém časovém období nemají žádné rezervace, zvažte následující:
SELECT roomID FROM room WHERE roomID NOT IN(
SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)
Co se tam děje?
Ve vnitřním dotazu hledám v seznamu rezervací rezervace, které jsou alespoň částečně v požadovaném časovém rámci, a získám jejich ID pokojů. A pak ve vnějším dotazu vyžádám z tabulky místností všechna ID místností, která NEJSOU uvedena, to znamená, že nemají žádnou rezervaci, která je alespoň částečně v požadovaném časovém rámci.
@StartDate a @EndDate byste museli upravit vy - musíte tam vložit své proměnné.