data master(index=(ssn));
input ssn : $11. nickname $;
datalines;
161-60-5881 Joshua
161-60-5881 Joshua
160-58-1223 Kathryn
160-58-1223 Kathryn
134-56-9094 Megan
;
data trans;
input ssn : $11. tnicknam $;
datalines;
161-60-5881 Josh
160-58-1223 Kathy
160-58-1223 Kate
134-56-9094 Meg
142-67-9888 Bill
;
proc sort data=trans;
by ssn;
data master;
set trans;
by ssn;
dummy=0;
do until (_iorc_=%sysrc(_dsenom));
if dummy then ssn="999-99-9999";
modify master key=ssn;
select (_iorc_);
when (%sysrc(_sok)) do;
nickname=tnicknam;
replace master;
end;
when (%sysrc(_dsenom)) do;
_error_=0;
if not last.ssn and not dummy then do;
dummy=1;
_iorc_=0;/
*如把这句注释掉结果不一样,请问这语句的作用*/
end;
end;
otherwise;
end;
end;
proc print data=master;
run;