楼主: wlfjhh
2261 3

大神们!要疯了 帮忙纠正一下下面这段代码 [推广有奖]

  • 0关注
  • 0粉丝

博士生

11%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
4.5000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
367 点
帖子
61
精华
0
在线时间
372 小时
注册时间
2010-6-12
最后登录
2024-11-11

楼主
wlfjhh 发表于 2016-11-25 15:09:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
问题出在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
二维码

扫码加我 拉你入群

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

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

关键词:proc sql symput amount Result having

沙发
wlfjhh 发表于 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.

藤椅
wlfjhh 发表于 2016-11-25 15:57:53
错误22 指向的是&amount

板凳
mingfeng07 学生认证  发表于 2016-11-25 16:56:43
你前面生成的宏变量应该是amount1、amount2等,你后面引用的却是amout,后面写错了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 03:52