我的问题是: 我有这张桌子:
患者(财政代码,姓名,姓氏)
部门(身份证,姓名)
床(id,department):部门参考部门(id)
恢复(患者,床,start_date,end_date *):患者参考患者(fc)和床反床(id)
我需要查询返回给定日期和特定部门的占用床位数d。
我在考虑这样的事情,但我不确定:
SELECT count(bed.id)
FROM bed b
,department dep
,recover r
WHERE dep.id = d.id
AND d.id = b.id
AND r.bed = b.id
AND r.start_date < given_date
AND r.end_date < given_date
答案 0 :(得分:1)
我认为这应该对你有用
SELECT COUNT(B.ID)
FROM BED B
INNER JOIN DEPARTMENT D ON B.department = D.id
INNER JOIN RECOVER R ON R.Bed = B.id
WHERE
R.end_date < given_date
AND R.start_date < given_date
AND (D.name = 'department_name'
OR
D.id = --departmentID--
)
你的WHERE子句实际上有一个额外的条件,要求ID
talbe中的DEPARTMENT
与ID
表中的BED
相同。