Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:stanze libere/occupate come ora

La tua domanda è piuttosto difficile da seguire perché le colonne nella tua query non corrispondono alle colonne nei dati di esempio. Inoltre, non hai i risultati desiderati.

Penso che tu debba spostare i confronti delle date in un on clausola e quindi cercare le non corrispondenze 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 ;