[code:15cdy95g]%macro t1(day=,dataout=);
proc sql;
create table b as
select *,max(s_d) as maxb/* format=date9.*//*unecessary and confusing*/
from a;
quit;
proc sql noprint; select maxb into :maxb from b; quit;
%put maxb=&maxb.;
%if &maxb.>= %sysevalf("&day."d) /*make them comparable*/%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;