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 ootWHERE 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_idhaving max(case when oot.TIME_NODE_ID='n1' then oot.node_time else null end) is not null)sjCONNECT BY (level <= trunc(sj.出室时间) - trunc(sj.入室时间) + 1)