SELECT --distinct sj.ons_reg_id,sj.入室时间 + level - 1 天数,sj.入室时间,sj.出室时间 FROM ( --1.获取每个患者的出入室时间 SELECT oot.ons_reg_id, max(case when oot.TIME_NODE_ID='n1' then oot.node_time else null end) 入室时间, max(case when oot.TIME_NODE_ID='n13' then oot.node_time else null end) 出室时间 --!!!注:考虑患者未出室但已到月末,工时当月算,假定为搜索日期截止日出室 --nvl(max(case when oot.TIME_NODE_ID='n13' then oot.node_time else null end),to_date('${jssj}'||' 23:59:59','yyyy-mm-dd hh24:mi:ss')) 出室时间 --nvl(max(case when oot.TIME_NODE_ID='n13' then oot.node_time else null end),to_date('2023-03-31'||' 23:59:59','yyyy-mm-dd hh24:mi:ss')) 出室时间 FROM ons_oper_time oot WHERE oot.TIME_NODE_ID in ('n1','n13') and trunc(oot.node_time) <to_date('2023-03-31','yyyy-mm-dd') and trunc(oot.node_time) >to_date('2023-03-01','yyyy-mm-dd') group by oot.ons_reg_id having max(case when oot.TIME_NODE_ID='n1' then oot.node_time else null end) is not null )sj CONNECT BY (level <= trunc(sj.出室时间) - trunc(sj.入室时间) + 1) |
最佳回答 |
||||
1
|
|