Dit zal uw specifieke vraag met ja of nee beantwoorden. Ik weet niet zeker of het nuttig is, aangezien de zoekwaarden voor de datum allemaal specifiek zijn in een hardgecodeerde lijst.
select coalesce(max('no'), 'yes') as available
from tbl t
where room_type_id = 23 and
dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00",
"2018-03-08 00:00:00", "2018-03-09 00:00:00");
Als je logica bedoeld is om ten minste één open . te vinden date, dan zou je zoiets als dit kunnen proberen:
select case when count(*) = 4 then 1 else 0 end as whatever_this_means
from tbl t
where room_type_id = 23 and
dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00",
"2018-03-08 00:00:00", "2018-03-09 00:00:00");
Het probleem zal zijn dat je de waarde 4 nu hard hebt gecodeerd, die is gekoppeld aan het aantal datums in de lijst later in de query. Er zijn manieren om dit dynamischer aan te pakken, maar het is niet helemaal duidelijk uit uw vraag hoe u dat het beste kunt doen.