病人的Oracle sql查询

Posted

技术标签:

【中文标题】病人的Oracle sql查询【英文标题】:Oracle sql query for patients 【发布时间】:2020-09-28 08:37:29 【问题描述】:

我有下表。

W_TRANSFER_TXN

In It 给出了 dt 内的病房和 dt 外的病房。 WRT_IN_DT 和 WRT_OUT_DT。

我需要找出特定 WRT_FROM_WARD_CD 病房代码在特定日期的患者人数。 应该是这样的:

一个唯一的 WRT_IP_NUM 是一个唯一的患者。我如何编写查询来做到这一点

【问题讨论】:

您的意思是标记oracle-sqldeveloper吗?您的屏幕截图显示 plsqldeveloper,尽管问题与这两种工具都无关。 【参考方案1】:

如果我正确地遵循了你,你可以将列取消旋转到行,然后使用窗口总和:

select wrt_from_ward_cd, wrt_dt, 
    sum(val) over(partition by wrt_from_ward_cd order by wrt_dt) no_patients
from (
    select wrt_from_ward_cd, wrt_in_dt wrt_dt, 1 val from w_transfer_txn
    union all
    select wrt_from_ward_cd, wrt_out_dt, -1 val from w_transfer_txn
) t

这将为您提供每个时间点的实际患者人数。如果要在给定的日期范围内进行过滤,则需要嵌套上述查询:

select *
from (
    select wrt_from_ward_cd, wrt_dt, 
        sum(val) over(partition by wrt_from_ward_cd order by wrt_dt) no_patients
    from (
        select wrt_from_ward_cd, wrt_in_dt wrt_dt, 1 val from w_transfer_txn
        union all
        select wrt_from_ward_cd, wrt_out_dt, -1 val from w_transfer_txn
    ) t
) t
where wrt_dt between date '2020-09-20' and date '2020-09-24'

【讨论】:

以上是关于病人的Oracle sql查询的主要内容,如果未能解决你的问题,请参考以下文章

关于Oracle中的nvl()函数的使用,中医科查询出院病人信息报错

Access中UPDATE语句一次更新多个数据

oracle 中的 sql语句查询

oracle SQL查询语句

oracle sql查询求助

oracle里怎么对sql查询的日志进行查看