我有一条SQL语句,希望使用SAS (9.4)实现自动化。以下语句已在Teradata助手中测试并运行。
select * from TD.DATA where date='2015-06-01'现在,我希望通过proc传递,并将日期提供给SQL程序,如下所示.
proc sql;
connect to teradata as tera(user=&tera_user password="&tera_pwd" tdpid=terap);
create table MYDATA as
select * from connection to tera
(
select * from TD.DATA where date='2015-06-01'
);
disconnect from tera;
quit;上面的代码已经过测试,并产生了与前一个SQL语句完全相同的输出。然而,我真正想要的是这样做:
%let input_date='2015-06-01';
proc sql;
connect to teradata as tera(user=&tera_user password="&tera_pwd" tdpid=terap);
create table MYDATA as
select * from connection to tera
(
select * from TD.DATA where date=&input_date.
);
disconnect from tera;
quit;我试过不同的报价组合和不同的日期formats....what我在这里失踪了吗?谢谢。
发布于 2015-07-30 06:30:04
试试这个:
%let input_date=2015-06-01;
proc sql;
connect to teradata as tera(user=&tera_user password="&tera_pwd" tdpid=terap);
create table MYDATA as
select * from connection to tera
(
select * from TD.DATA where date=%str(%'&input_date%')
);
disconnect from tera;
quit;发布于 2016-04-04 13:44:52
与日期201501的格式一样,可以生成一个工作的宏变量。
%let input_date = 201506;
%let input_date2=input(put(intnx('month',%sysfunc(inputn(&input_date,yymmn6.)),0,'b'),10.),yymmddd10.)
proc sql;
connect to teradata as tera(user=&tera_user password="&tera_pwd" tdpid=terap);
create table MYDATA as
select * from connection to tera
(
select * from TD.DATA where date = %BQUOTE('&INPUT_DATE2')
);
disconnect from tera;
quit;https://stackoverflow.com/questions/31714447
复制相似问题