%macro abc; data test; branch_code=100; cust_name='a'; revenue=25000; output; branch_code=200; cust_name='b'; revenue=2500; output; branch_code=200; cust_name='c'; revenue=25000; output; branch_code=300; cust_name='d'; revenue=5000; output; run; proc sql; select count(distinct(branch_code)) into :n from test;quit; %let n= %trim(&n); proc sql; select distinct(branch_code) into :branch_code1-:branch_code&n from test; quit; %do i=1 %to &n; data branch_&&branch_code&i. ; set test; if branch_code="&&branch_code&i." ; run; %end; %mend; %abc Since dataset name cannot start with number i have prefixed with brnach
... View more