[英]T SQL: Find row in 2nd Table - with most recent Date - Before Date in current Table
我为一组由联邦和 State 资助的健康诊所 [社区健康中心] 工作。
每次患者就诊时,都会记录患者在就诊日期的当前健康保险。
当患者有婴儿时,他们出生的医院在分娩之日没有向我们发送患者健康保险。
我有一个数据集 [Deliveries],其中包含患者列表和他们在过去三年中出生的婴儿的日期。
我有一个单独的数据集 [访问],其中包含来自“交付”数据集的所有患者的所有访问 [在我们的一个诊所]。 该数据集包含每次就诊时每位患者的健康保险。
预期 output:
Patient, Delivery Date, Most Recent Visit, Health Insurance
对于每位患者,我需要在婴儿出生前最后一次 [最近一次] 访问我们的一个诊所时添加保险。
我希望我已经充分解释了。
感谢我能得到的任何帮助!
例子:
交货:
Patient Delivery Date
----------------------------
A 2017-02-22
A 2018-04-16
A 2019-07-12
访问:
Patient Visit Date Insurance
------------------------------------------
A 2017-01-10 X
A 2017-01-23 Y
A 2018-01-12 W
A 2018-03-22 P
A 2019-04-16 R
A 2019-06-12 S
预期 output:
Patient Delivery Date Most Recent Visit Insurance
-----------------------------------------------------------------------
A 2017-02-22 2017-01-23 Y
A 2018-04-16 2018-03-22 P
A 2019-07-12 2019-06-12 S
我建议横向连接:
selet d.*, v.visit_date most_recent_visit, v.insurance
from deliveries d
outer apply (
select top (1) v.*
from visits v
where v.patient = d.patient and v.visit_date < d.delivery_date
order by v.visit_date desc
) d
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.