在我的 sas 程序中,我只想从我的大型机服务器上下载数据,其中 date=20150427

In my sas program i only want data down from my mainframe server where date=20150427

我想问我的大型机服务器是否只能从日期=20150427 获取数据。就像 SQL

中的 where 语句

所以问题是数据是 "flat" 数据所以我用输入语句定义了每一列 我尝试使用 where=(L7DANDAT=20150427) L7DANDAT 是日期,但它不起作用。希望你们能帮忙。 代码:

filename DG121'G41066.PUREX.HK000.WAB.HTB.DG121'; 





DATA WAB (compress=binary);


INFILE DG121 ;


INPUT
@   1   LAENGDE ?? IB2.
@   3   TOTANM  ?? IB2.
@   5   REXHTYP ?? IB2.
@   7   RMODTAFD ?? PD3.    
@   10  RANVDATO ?? PD5.
@   15  RKUNDENR ?? PD6.
@   21  RBRKODE ??  PD2.
@   23  RRAADGIV ?? ÅCHAR1.
@   24  RKUNDKAT ?? ÅCHAR3.
@   27  RMAXOPR ??  PD8.2
@   35  RLOBTIDO ?? PD2.
@   37  RPRODBET ?? ÅCHAR6.
@   43  RMEDIE ??   ÅCHAR5.
@   48  ROPSIG ??   ZD3.
@   51  RINDUDL ??  ÅCHAR1.
@   52  RKUNDGRP ?? ÅCHAR1.
@   53  L7HTYP ??   IB2.
@   55  L7TRGRP ??  IB2.
@   57  L7TRART ??  IB2.
@   59  L7TRTYP ??  IB2.
@   61  L7ANSAFD ?? IB2.
@   63  FILLER ??   ÅCHAR2.
@   65  L7TRMIS ??  IB4.
@   69  L7FBRID ??  IB4.
@   73  L7DANDAT ?? IB4.
@   77  L7DANTID ?? IB4.
@   81  L7FANDAT ?? IB4.
@   85  L7FSYST ??  ÅCHAR8.
@   93  L7ARKIV ??  IB8.
@   101 BHTYP ??    PD2.
@   103 BTILBAGE ?? PD1.
@   104 BAUTOMAT ?? PD1.
@   105 BGEBKAT ??  PD2.
@   107 BGEBSTED ?? PD2.
@   109 BPOSART ??  PD2.
@   111 BFOROMR ??  PD2.
@   113 BSFORM ??   PD2.
@   115 BSERVART ?? PD2.
@   117 BFRASTED ?? PD6.
@   123 KTONR   ?? PD6.
@   129 IKSAFDNR    ??  PD3.
@   132 IKSARTNR    ??  PD4.
@   136 FILLER  ??  ÅCHAR3.

;

where=(L7DANDAT=20150427)

;
run;

PROC DOWNLOAD data=WAB  out=WAB V6TRANSPORT EXTENDSN=YES ;RUN; 
数据步中允许

WHERE 语句,但仅适用于 SET 语句。您不能在文件源数据步骤上使用它。您可以:

  • 在数据步骤中使用 IF 语句。
  • 在 PROC DOWNLOAD
  • 中使用 WHERE statement

前者可能更有效,但如果您要随着时间的推移从同一个输入文件重复下载不同日期,后者可能会更好。