Hi, I have the following SQL code; I am trying to write the data step code similar to this. I tried some thing but in vain.Could any one help me? I could not understand the code highlighted in bold. Please find the sql code below. proc sql; create table dem1 as select ex.*, case when ex.dafl is null then adverse.dafl else ex.dafl end as date1, case when ex.tfl is null then adverse.tfl else ex.tfl end as time1, case when ex.pidno is null then adverse.pidno else ex.pidno end as acc1, case when ex.folder is null then adverse.folder else ex.folder end as lbn1 from dem ex left join (select t1.usubjid,t1.visitnum,rsn,t1.subev,t1.visitd,t2.dafl,t2.tfl,t2.pidno,t2.folder from (select usubjid,visitnum,visitd,rsn,subev from dem where rsn>1) t1 join (select usubjid,visitnum,visitd,dafl,tfl,subev,pidno,folder from dem where rsn=1) t2 on t1.usubjid = t2.usubjid and t1.visitnum = t2.visitnum and t1.visitd = t2.visitd and t1.subev = t2.subev) adverse on ex.usubjid = adverse.usubjid and ex.visitnum = adverse.visitnum and ex.visitd = adverse.visitd and ex.rsn = adverse.rsn and ex.subev = adverse.subev ; quit; Following is my Data step code: data t1 (keep= usubjid visitnum visitd rsn subev); set dem ; where rsn>1 ; run; data t2 (keep= usubjid visitnum visitd dafl tfl subev pidno folder); set dem ; where rsn=1 ; run; proc sort data=t1; by usubjid visitnum visitd subev; run; proc sort data=t2; by usubjid visitnum visitd subev; run; data adverse; merge t1 (in=a) t2 (in=b); by usubjid visitnum visitd subev; if a and b; run; proc sort data=ex; by usubjid visitnum visitd rsn subev; run; proc sort data= adverse; by usubjid visitnum visitd rsn subev; run; data ex ; merge ex (in=a) adverse (in=b); by usubjid visitnum visitd rsn subev; if a; run; data dem1 ; set dem ; if ex.dafl eq “ “ then date1=adverse.dafl; else then date1=ex.dafl; if ex.tfl eq “ “ then time1= adverse.tfl; else then time1= ex.tfl; if ex.pidno eq “ “ then acc1= adverse.pidno; else then acc1= ex.pidno; if ex.folder eq “ “ then lbn1= adverse.folder; else then lbn1= ex.folder; run;
... View more