我想将宏调用到另一个宏中,这会创建一个我想在另一个宏中使用的宏变量。但输出是"警告:未解析显式符号引用TEST33。"
data Base1;
input v1 v2 v3;
datalines;
1 7 8
;
run;
%let number = 6;
%Macro test1;
proc sql noprint;
select
case when (
case when &number eq 3 then v1
when &number eq 6 then v2
when &number eq 12 then v3
end ) ge 6 then 1 else 0 end into: Test22 from _last_; quit;
%let Test33 = &Test22;
%Mend test1;
options mlogic mprint symbolgen;
%Macro test2;
%test1
%put &= &Test33;
%Mend;
%test2;
答案 0 :(得分:0)
您的代码有两个错误,但不确定它们是否是真正的错误或错误的演示代码。
无论哪种方式:
这对我来说很好用:
data Base1;
input v1 v2 v3;
datalines;
1 7 8
;
run;
%let number = 6;
%Macro test1;
%global Test33;
proc sql noprint;
select
case when (
case when &number eq 3 then v1
when &number eq 6 then v2
when &number eq 12 then v3
end ) ge 6 then 1 else 0 end into: Test22 from base1; quit;
%let Test33 = &Test22;
%Mend test1;
options mlogic mprint symbolgen;
%Macro test2;
%test1
%put &= &Test33;
%Mend;
%test2;