有没有大佬看的出我这个sql为啥生成了大量重复数据

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)

SQL 帆软用户frLlnxgPLQ 发布于 2023-4-11 14:22
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
用户6NWif5139660Lv6资深互助
发布于2023-4-11 21:47

最后加个group by 就好了

  • 2关注人数
  • 204浏览人数
  • 最后回答于:2023-4-11 21:47
    请选择关闭问题的原因
    确定 取消
    返回顶部