在我的sas程序中,我只想从我的主机服务器下来数据,其中date = 20150427

时间:2015-05-27 14:11:51

标签: sas where

我想询问我的主机服务器是否只能从日期= 20150427获取数据。像SQL中的where语句

问题是数据是平的"数据,所以我用输入语句定义了每一列 我试图使用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; 

1 个答案:

答案 0 :(得分:3)

datastep中允许使用

WHERE语句,但仅适用于SET语句。您无法在infile-sourced数据步骤中使用它。你可以:

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

前者可能效率更高,但如果您从同一输入文件中反复下载不同日期,后者可能会更好。