Eu tenho algo assim:
Id Visit_Date Visit_code
A30 15May2004 Surgery
A30 05FEB2005 Office
B01 07DEC2002 Office
B01 21NOV2002 Surgery
E eu preciso disso, com uma coluna indicando se a pessoa fez uma cirurgia dentro de 6 meses após a visita ao consultório
ID Office_Visit SX_past_6mo
A30 1 0
B01 1 1
Estou tentando coisas assim, mas tendo problemas com a subconsulta
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
Você precisa juntar a mesa a ela mesma. Este código fornece cada cirurgia e a (primeira consulta ao consultório após a cirurgia) e (primeira consulta ao consultório meses após a cirurgia). Não tenho certeza se você queria uma visita ao consultório antes ou depois da cirurgia, mas fui depois.
Com base nos dados de amostra, você pode resumir desta forma:
No mundo real haveria muitas outras combinações de encontros com pacientes. Pode ser mais robusto usar uma subconsulta: