Tím odpovíte na vaši konkrétní otázku ano nebo ne. Nejsem si jistý, zda je to užitečné, protože hodnoty vyhledávání podle data jsou všechny specifické v pevně zakódovaném seznamu.
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");
Pokud smyslem vaší logiky je najít alespoň jeden otevřený datum, pak můžete zkusit něco takového:
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");
Problém bude v tom, že jste nyní pevně zakódovali hodnotu 4, která je svázána s počtem dat v seznamu později v dotazu. Existují způsoby, jak to zvládnout dynamičtěji, ale z vaší otázky není zcela jasné, jak to nejlépe udělat.