我需要为具有以下架构的数据库创建一些查询:
Patient(**pid**,pname,address,phone)
Ward(**wid**, wname) // wid=Ward id,
Bed(**wid,bid**) // bid=Bed id
Appointment(**apid**,date,result,pid,cid) // cid=Consultant id, pid=Patient id
Consultant(**cid**,cname,clinId,phone) // clinId=Clinic ID
Allocation(**apid**,pid,wid,bid,date,ex_leave,act_leave) //ex=expected, act=actual
查询是:
- 找出每个病房有多少张空闲床位。
- 找出 2013 年 3 月期间每天为其分配的病房。
- 返回执行大多数预约并导致骨科病房分配的顾问详细信息。
我尝试使用这样的视图创建第一个:
create view hospital.occupied_beds as
select A.wid,count(*) as o_beds
from hospital.allocation A,hospital.bed B
where A.wid=B.wid and A.bid=B.bid and A.act_leave is null
group by A.wid;
create view hospital.all_beds as
select C.wid,count(*) as all_beds
from hospital.bed C
group by C.wid;
select distinct A.wid,all_beds-o_beds as uo_beds
from hospital.occupied_beds A, hospital.all_beds B
但这样它就不会返回所有床位都无人使用的病房。
请帮我 :)