Sql 固定科室固定日期内的免费床位数

Sql 固定科室固定日期内的免费床位数,sql,postgresql,Sql,Postgresql,我的问题是: 我有以下表格: 患者财务代码、姓名、姓氏 部门id,名称 床id,部门:部门参考部门id 恢复患者、病床、开始日期、结束日期*:患者参考Patientfc和病床参考Bedid 我需要做一个查询,返回给定日期和给定部门d中占用的床位数 我在想这样的事情,但我不确定: SELECT count(bed.id) FROM bed b ,department dep ,recover r WHERE dep.id = d.id AND d.id = b.id

我的问题是: 我有以下表格:

患者财务代码、姓名、姓氏 部门id,名称 床id,部门:部门参考部门id 恢复患者、病床、开始日期、结束日期*:患者参考Patientfc和病床参考Bedid

我需要做一个查询,返回给定日期和给定部门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

我想这应该对你有用

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子句中有一个附加条件,要求DEPARTMENT talbe中的ID与BED table中的ID相同。

是的,这是一个错误,应该是d.ID=b.dep,我感到困惑。非常感谢你的回答。我很高兴至少我很接近。我对SQL很在行。你理解逻辑,做了一个不错的查询。你正在变得更好,祝你好运!您可以使用Schema Deck共享数据库表,如下所示:啊,很好,我不知道这件事。谢谢