2014-07-02 48 views
0
%macro example  
%let begdate = ’01Nov2004’d; 
    %let enddate = ’30Nov2004’d; 
    proc sort data=test out=test2; 
    where date between &begdate and &enddate; 
    by date; 
    run; 
%mend example; 

此代碼給我的錯誤日期宏變量:ERROR: Syntax error while parsing WHERE clause. 然而,當我簡單地通過相應的值替換& begdate和&結束日期,它的工作原理。如何解決PROC步

+3

當我將';'添加到第一行,並將''更改爲'''時,它工作正常;所以你要麼有這些問題之一,要麼是其他問題。 – Joe

回答

1

我通常這樣運行礦:

%macro example  
%let begdate = 01Nov2004; 
    %let enddate = 30Nov2004; 
    proc sort data=test out=test2; 
    where date between "&begdate"d and "&enddate"d; 
    by date; 
    run; 
%mend example; 

我簡單地除去的日期格式的任何假設和參考宏變量中的代碼作爲字符串。希望這可以幫助!!