|
data test;
informat start end date9.;
format start end yymmdd10.;
input id $18. start end;
cards;
123456789123456789 '01jan2019'd '05jan2019'd
123456789123456789 '05jan2019'd '08jan2019'd
123456789123456789 '08jan2019'd '20jan2019'd
123456789123456777 '01jan2019'd '05jan2019'd
123456789123456777 '06jan2019'd '08jan2019'd
123456789123456777 '08jan2019'd '20jan2019'd
;
run;
data want;
do i=1 to nobs;
set test point=i nobs=nobs;
do j=i+1 to nobs;
set test(rename=(id=id1 start=start1 end=end1)) point=j;
if id=id1 and end=start1 then do;
end=end1;
i+1;
if j=nobs then output;
end;
else do;
output;
goto next;
end;
end;
next:
end;
stop;
drop id1 start1 end1;
run;
proc print;run;
|