繁体   English   中英

T SQL:在第二个表中查找行-最近的日期-当前表中的日期之前

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM