Sql sasdo循环的问题

Sql sasdo循环的问题,sql,loops,sas,proc,do-loops,Sql,Loops,Sas,Proc,Do Loops,这是我的代码: libname Project 'XXX'; run; %let dname = q1males; %let Gender = 'Male'; %let samp = q1msamp; %let stats = Malestats; data project.data1; set project.data; id = _n_; run; data project.&dname; set project.data1; if Gender = &Gende

这是我的代码:

libname Project 'XXX'; run;
%let dname = q1males;
%let Gender = 'Male';
%let samp = q1msamp;
%let stats = Malestats;


data project.data1; set project.data;
id = _n_;
run;



data project.&dname; set project.data1; 
if Gender = &Gender;
run;
%macro question;
%do i = 1 %to 5;

proc surveyselect data = project.&dname method = SRS sampsize = 27 
                out = project.&samp;
                id _all_;
run;

proc print data = project.&samp;
run;

proc sql;
create table project.&stats&i as
select 'Weight',
avg(Weight) as Mean format 10.2 label 'Mean Weight',
std(Weight) as Std format 10.2 label 'Std. Dev Weight'
from project.&samp;
QUIT;
%end;
%mend question;
%question;

%do j = 1 %to 5;
data project.merged&j;
merge project.femalestats&j project.malestats&j;
by _Tema003 Mean Std;
run;
除了最后6行之外,一切正常,从%do j=1%到5开始。 我为女性和男性数据集运行了两次前面的代码,在最后6行中,我尝试合并女性和男性数据集(例如:project.Femalestats1与project.Malestats1合并到一个新的数据集中project.merged1) 我的日志没有显示错误,但是我也没有得到合并的数据集。我尝试了proc-sql,结果令人失望


有什么帮助吗?谢谢

不能在宏之外使用宏循环。将最后几行括在宏中,就像执行
问题
宏一样

此外,还需要结束循环:

%macro myloop();
   %do i=1 %to 5;

      <stuff>

   %end
%mend;

%myloop;
%macro myloop();
%i=1%到5%;
%结束
%修补;
%myloop;