data a;
input a$ b code$;
datalines;
a 10000 000001
b 2600 000001
c 670 000001
t2a 70 000001
t2b 6 000001
t2c 400 000001
a 690 000002
b 110 000002
c 2500 000002
t2a 450 000002
t2b 160 000002
t2c 8 000002
q 8 000003
q 8 000003
q 8 000003
q 8 000003
;
run;
proc sql noprint;
select count(distinct code) into: count from a ;
select distinct code into :code separated by " " from a group by code;
quit;
%macro table();
%do i = 1 %to &count;
%let tempcode = %scan(&code,&i," ");
proc sql;
create table code_&tempcode as select * from a where code = "&tempcode";
quit;
%end;
%mend;
%table();