Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL:Freie / belegte Zimmer wie jetzt

Ihrer Frage ist ziemlich schwer zu folgen, da die Spalten in Ihrer Abfrage nicht mit den Spalten in den Beispieldaten übereinstimmen. Außerdem haben Sie keine gewünschten Ergebnisse.

Ich denke, Sie müssen die Datumsvergleiche in ein on verschieben -Klausel und suchen Sie dann nach Nichtübereinstimmungen in where :

select rct.room_category AS room_category,
       group_concat(rc.room_name separator ',') AS vacant_beds
from room_charges rc join
     room_category rct
     on rc.room_category = rct.id left join
     patient_detail pd
     on rc.id = pd.room_name and
        (pd. discharge_date_time is null or
         curdate() between admission_date_time and discharge_date_time)
where pd.id is null
group by rc.room_category ;