【发布时间】:2016-04-10 19:06:12
【问题描述】:
我有一个名为error_table 的数据集,如下所示。所有的变量都是字符
Errorno Error Resolution
001 login check
002 datacheck check
如果Errorno 不在001 和002 中,我想要一个执行sas 程序的逻辑。否则停止执行并显示error_table。
我尝试了以下
%macro test();
proc sql;
select trim(Error_No) into: num from error_table;
quit;
%if &num. not in ("001","002") %then %do;
%include "/path/dev/program.sas";
%end;
%else %do;
proc print data = error_table;
run;
%end;
%mend;
%test;
但是,它抛出了一个错误。
谁能更正逻辑。
【问题讨论】:
-
它会抛出什么错误?
-
对你的逻辑感到好奇。你的意思是:如果error_table中有任何记录其中errorno不在(“001”“002”)然后运行程序;否则打印error_table?
标签: if-statement sas sas-macro proc-sql