| 
 | 
 
proc sort data = sdtm.dm(keep = USUBJID RFSTDTC) out = dm; 
   by USUBJID RFSTDTC; 
run; 
proc sort data = cm; 
      by USUBJID; 
run; 
data cm; 
   merge dm(in=a) cm(in=b); 
      by USUBJID; 
   if b; 
   if length(RFSTDTC) >= 10 then _RFSTDTC = input(substr(RFSTDTC,1,10),yymmdd10.); 
   if length(CMSTDTC) >= 10 then _CMSTDTC = input(substr(CMSTDTC,1,10),yymmdd10.); 
   if length(CMENDTC) >= 10 then _CMENDTC = input(substr(CMENDTC,1,10),yymmdd10.)); 
   if nmiss(_RFSTDTC,_CMSTDTC) = 0 then CMSTDY = _CMSTDTC - _RFSTDTC + (_RFSTDTC <= _CMSTDTC); *** BR 05; 
   if nmiss(_RFSTDTC,_CMENDTC) = 0 then CMENDY = _CMENDTC - _RFSTDTC + (_RFSTDTC <= _CMENDTC); *** BR 06; 
run; 
 
 |   
 
 
 
 |