我有一个希望使用SAS EG(9.4)自动执行的SQL语句。以下语句已在Teradata SQL Assistant中进行了测试,并且可以正常工作。
select * from TD.DATA where date='2015-06-01'
现在,我希望通过proc SQL传递将其推送,并将日期输入到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;
我已经尝试了各种不同的引号和不同的日期格式组合。...我在这里缺少什么?谢谢。
您可以使用%BQUOTE()
宏函数来解析单引号内的宏变量。
%let input_date = 2015-06-01; proc sql; 以tera身份连接到teradata(用户=&tera_user密码=“&tera_pwd” tdpid = terap); 创建表MYDATA为 选择*从连接到Tera ( 从TD.DATA中选择*,其中date =%BQUOTE('&INPUT_DATE') ); 与Tera断开连接; 辞职;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句