I think this example is close to what you are looking for:
data junk1;
x = 1; output;
x = 2; output;
run;
data junk2;
x = 3; output;
x = 4; output;
run;
data datasets;
Thisdataset = 'junk1'; output;
Thisdataset = 'junk2'; output;
run;
%macro getsum;
%put Here is &datasetIN;
%let datasetIN = %sysfunc(dequote(&datasetIN));
proc sql ;
select sum(x)
into :thesum
from &datasetIN;
quit;
%mend;
proc fcmp outlib = sasuser.ds.functions;
subroutine getsum(datasetIN $,thesum);
outargs thesum;
rc = run_macro('getsum',datasetIN,thesum);
endsub;
run;
option cmplib = (sasuser.ds);
data junk3;
set datasets;
length thesum 8;
call getsum(Thisdataset,thesum);
run;
... View more