全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2223 3
2016-11-25
问题出在sql那里,感觉是特殊符号问题,求助



data _null_;
set age;
suffix=put(_n_,5.);
call symput(cats('year',suffix), year);
call symput(cats('m',suffix),month);
call symput('x',x);
call symput(cats('amount',suffix),amount);
run;


%macro test;

%do i=1 %to &x;

proc sql;                                                                                                                                                                                                                                                      
create table result&i as  select*,
max (case when (dr=&amount and  m=&m and year=&y) then 10 else 0 end) as zz from yijia1 group by code1 having zz=10;
quit;

proc sort data=result&i;
by descending date;
run;

%end;
%mend test;
%tes
二维码

扫码加我 拉你入群

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

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

全部回复
2016-11-25 15:57:28
OTE: 由调用宏“TEST”生成行。
5                create table result&i as  select*, case when cr=&amount  then 10 else 0 end as zz from yijia1 group by
                                                                                     -
                                                                                    22
5  ! code1 having zz=10; quit;  proc sort data=result&i; by descending date; run;
WARNING: 没有解析符号引用 AMOUNT。
ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, BTRIM, INPUT, PUT, SUBSTRING,
              USER.
二维码

扫码加我 拉你入群

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

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

2016-11-25 15:57:53
错误22 指向的是&amount
二维码

扫码加我 拉你入群

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

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

2016-11-25 16:56:43
你前面生成的宏变量应该是amount1、amount2等,你后面引用的却是amout,后面写错了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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