2014-07-02 40 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; 

我简单地除去的日期格式的任何假设和参考宏变量中的代码作为字符串。希望这可以帮助!!