具有null值的联接和最大日期



我需要返回存在生命值的患者ID的最新(最大(日期-这不仅仅是患者ID的最大遭遇日期,它必须具有相应的生命值。我也只想遇到生命体征值<gt;''和日期>='2020-01-01'和vital_ID=232268。

邂逅(enc(

日期2020年4月1日2020年3月6日[/tr>2020年6月2日[/tr>2020年12月6日[/tr>9/2020
Patient_ID Encounter_ID
1 11
1 12 2020年1月15日
1 13
2 14 2020年12月1日
3 15 2020年3月16日
3 16 2020年4月19日
4 17
4 18
4 19

如果我没有错的话,您需要相关子查询中的两个表:

select v.encounterid, e.patientid, e.date, v.value, v.vitalid 
from enc e 
inner join vitals v on v.encounterid = e.encounterid 
where 
v.vitalid = 232268 
and v.value <>'' 
and e.date = (
select max(e1.date) 
from enc e1
inner join vitals v1 on v1.encounterid = e1.encounterid 
where 
e1.patientid = e.patientid 
and v1.vitalid = v.vitalid
and v1.value <> ''
and e.date >= '2020-01-01'
)

我不知道Cognos是否支持窗口函数。但如果是这样的话,查询的措辞可以简单得多:

select *
from (
select v.encounterid, e.patientid, e.date, v.value, v.vitalid,
row_number() over(partition by e.patientid order by e.date)
from enc e 
inner join vitals v on v.encounterid = e.encounterid 
where v.vitalid = 232268 and v.value <> ''
) t
where rn = 1

相关内容

  • 没有找到相关文章

最新更新