全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
2553 1
2018-03-07
宏代码一直提示错误,如下:error:宏SQL仍在执行,无法重新定义,将编译哑宏:
具体代码如下:
proc sort data=jpj1.dm; by siteid subjid; run;
options nodate nonumber;
%macro kds(km,b1,new,condit);
data &km.(keep=siteid subjid &b1.);
set &new.;
if &condit. then output;
run;
%mend kds;
%kds(a144,DMDH1C DMDODOS,jpj1.dm,(DMDH1C='1' and DMDODOS^=''))
%macro sql (an,bn,yj,ms);
data &an.;
set &an.;
xiangmu="逻辑问题";
wenti="饮酒史勾选&yj.,但&ms.不为空,请核查。";
huida='';
run;
proc sql;
create table &bn. as
select siteid,subjid,xiangmu,wenti,huida from &an.
quit;
%mend sql;
%sql(a144,b144,饮酒,描述)
无论在定义和启动宏SQL它括号里的参数bn同时在第2位,还是同时在第4位,这段代码均一直报错,错误如上的描述,望论坛大神不吝赐教啊,是在是想不通。​
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-3-7 10:18:05
更新一下问题,因为宏参数没有写等号意味着宏参数为位置参数,必须按位置顺序出现,在定义宏sql的时候把参数bn调到最后,即宏sql的所有参数均为按照顺序出现,启动宏sql的时候参数bn也调到最后,跟定义的参数顺序一致,这样的话%kds(即启动宏kds)是可以跑出来结果的,但是从定义宏SQL到最后启动宏SQL这部分无法出结果,日志上只是把这段代码又写了一遍,没有任何说明,往高手指点迷津(顺便提一下,安装的SAS为9.4破解版),谢谢啦1
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群