从proc sql写入文件

时间:2015-10-07 05:21:43

标签: sas

我是SAS的新手,我需要将一个值写入proc sql的文件中,但是我遇到了很多麻烦。请参阅下面的代码。

data _null_;
FILE 'C:\MyFile.txt';

proc sql;
  select datepart(max(DateCreated))  into :dt from epx.temp;
  %put &dt date9.;
quit;

run;

我在作业的Precode和Postcode属性中的MACRO中运行此代码。

1 个答案:

答案 0 :(得分:2)

proc sql语句在数据步骤中无效。实际上,SAS会将​​proc识别为数据步骤的结束边界,因此您的数据步骤仅包含file语句,并且不执行任何操作。

file语句会影响put语句,而不会影响宏%put语句。

不改变您的一般方法,您可以执行以下操作:

将格式化的值放入宏变量中,然后使用数据步骤将值写入文件。

proc sql;
select put(datepart(max(DateCreated)),date9.) into :dt from ext.temp;
quit;

data _null_;
  FILE 'C:\MyFile.txt';
  put "&dt";
run;

另一种方法是在数据步骤中完成所有操作,并避免完全使用宏变量:

data _null_;
  file 'C:\MyFile.txt';
  set ext.temp end=eof;
  retain maxdate;
  if datepart(DateCreated) gt maxdate then maxdate=datepart(DateCreated);
  if eof then put maxdate date9.;
run;