|
楼主

楼主 |
发表于 2011-11-21 04:42:38
|
只看该作者
请指点一下条件语句(%if...%then %do)错在哪?
下面的程序是为了把符合条件(s_d>&day.)的数据去出来,如果s_d全部小于&day.,那么就在SAS log里给出提示.
但问题是,'%if &maxb.>="&day."d %then %do;' 好像不起任何作用,就想请教一下,这是为什么,如何改正(我知道可以用open,但就是觉得很奇怪,为何这个条件语句就不行)? 谢谢!!!
data a;
input unid $ s_d date9.;
format s_d : date9.;
cards;
001 01jan1999
002 23sep2009
003 11may2000
004 27jul2002
;
run;
%macro t1(day=,dataout=);
proc sql;
create table b as
select *,max(s_d) as maxb format=date9.
from a;
quit;
proc sql noprint; select maxb into :maxb from b; quit;
%put maxb=&maxb.;
%if &maxb.>="&day."d %then %do;
data &dataout.;
set b(drop=maxb);
if s_d>="&day."d;
run;
proc delete data=b;run;
%end;
%else %do;
proc delete data=b;run;
%put NOTE: NO RECORDS SELECTED;
%end;
%mend;
%t1(day=01jan2010,dataout=a2) |
|