全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2867 6
2014-07-18
如下宏中,为什么%if &file=='sDET'成立却不执行THEN后面的,反而跳到去执行ELSE后面的语句,程序也没有错误,求大神指点!!!!!!

还没有解决,继续等待大神的帮助!!!!

libname DET_DATA 'C:\SAS DATA\lib\det';
option mprint;
%macro downdata(file,start,end,pro);/*mcw=,ow=,ser=)*/
proc sql;
connect to odbc (datasrc=qedb user=xxxx password=1234);
%if &file=='sDET' %then create table  DET_DATA.&pro as select *
from connection to odbc(select * from DBUSER.DATA_GTSD_&pro
where TST_DATE_TIME >=timestamp(current date -&end days,'00.00.00') and TST_DATE_TIME <=timestamp(current date -&start days,'24.00.00'));
%else create table  DET_DATA.&pro as select *
from connection to odbc(select * from DBUSER.DATA_GTMG_&pro
where TST_DATE_TIME >=timestamp(current date -&end days,'00.00.00') and TST_DATE_TIME <=timestamp(current date -&start days,'24.00.00'));;

disconnect from odbc;
quit;
%mend;
%downdata(sDET,0,2,KCG)



二维码

扫码加我 拉你入群

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

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

全部回复
2014-7-18 12:56:08
把if和then之前的%去掉,因为不是来执行宏程序
二维码

扫码加我 拉你入群

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

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

2014-7-18 13:04:51
%else 前面少了一个分号
二维码

扫码加我 拉你入群

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

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

2014-7-18 13:26:17
谢谢楼上2位,不过这样改程序反而报错了。
回3楼,else 前再加;的话,也提示错误ERROR: There is no matching %IF statement for the %ELSE.
                                                        ERROR: A dummy macro will be compiled.

回2楼,不要%号提示:Statement is not valid or it is used out of proper order.

1                                                                                     if
                                                                                      --
                                                                                      180
1  ! &file=='sDET' then create table  DET_DATA.&pro as select *     from connection to
1  ! odbc(select * from DBUSER.DATA_GTSD_&pro     where TST_DATE_TIME >=timestamp(current
1  ! date
MPRINT(DOWNDATA):   if sDET=='sDET' then create table DET_DATA.KCG as select * from
connection to odbc(select * from DBUSER.DATA_GTSD_KCG where TST_DATE_TIME
>=timestamp(current date -2 days,'00.00.00') and TST_DATE_TIME <=timestamp(current date -0
days,'24.00.00'));
ERROR 180-322: Statement is not valid or it is used out of proper order.
二维码

扫码加我 拉你入群

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

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

2014-7-18 14:06:40
没大神指教下吗?等待中
二维码

扫码加我 拉你入群

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

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

2014-7-18 21:22:48
lss5918 发表于 2014-7-18 14:06
没大神指教下吗?等待中
&file = sDET
JingJu
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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