0

次のスキーマを使用して、データベースに対していくつかのクエリを作成する必要があります。

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

クエリは次のとおりです。

  1. 各病棟に空いているベッドがいくつあるかを見つけます。
  2. 2013 年 3 月に毎日割り当てられた病棟を見つけます。
  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

しかし、この方法では、すべてのベッドが空いている病棟は返されません。

私を助けてください :)

4

3 に答える 3