我有这样的事情:
Id Visit_Date Visit_code
A30 15May2004 Surgery
A30 05FEB2005 Office
B01 07DEC2002 Office
B01 21NOV2002 Surgery
我需要这个,其中有一栏表明此人是否在就诊后 6 个月内接受过手术
ID Office_Visit SX_past_6mo
A30 1 0
B01 1 1
我正在尝试这样的事情,但子查询遇到问题
proc sql;
select case when
case when
visit_type="Office" then 1 else 0 end as office_visit,
case when
visit_type="Office" and
DATEDIFF(MM, visit_date, select(visit_date where visit_type="Surgery") > 6 then 1 else 0 end as sx_past_6mo
group by Id
您需要将表连接到其自身。此代码为您提供每次手术以及(手术后首次就诊)和(手术后首次就诊几个月)。我不确定您是否想要在手术前或手术后去办公室,但我选择了手术后。
根据示例数据,您可以这样总结:
在现实世界中,还会有许多其他的患者接触组合。使用子查询可能更健壮: