设定部门中设定日期的免费床位数

时间:2014-01-26 16:57:03

标签: sql postgresql

我的问题是: 我有这张桌子:

患者(财政代码,姓名,姓氏)
部门(身份证,姓名)
床(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

1 个答案:

答案 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中的DEPARTMENTID表中的BED相同。