%macro pbuffparms / parmbuff;
ods graphics on / reset=all;
%*----Process this section when parameter values specified;
%if &syspbuff ne %then %do;
%let i=1;
%let month=%scan(&syspbuff,&i);
%do %while(&month ne);
proc sgplot data=books.ytdsales
(where=(month(datesold)=&month));
title “Section Sales Report for Month &month”;
hbar section / response=saleprice stat=sum
datalabel;
yaxis label=' ';
run;
%let i=%eval(&i+1);
%let month=%scan(&syspbuff,&i);
%end;
%end;
%*----Process this section when no parameter values
specified;
%else %do;
proc sgplot data=books.ytdsales;
title “Annual Section Sales by Quarter”;
hbar section / response=saleprice stat=sum
group=datesold;
yaxis label=' ';
label datesold='Quarter';
format datesold qtr.;
run;
%end;
%mend pbuffparms;
*----Analyze sales for August and November;
%pbuffparms(8,11) It only comes out one graph titled "Section Sales Report for Month &month", obviously &syspbuff wasn't resolved. Could anyone help me out with this problem? Thank you so much.
Your logic appears to work .. at least the following worked for me:
data test;
set sashelp.class;
datesold=mdy(age-10,1,2014);
run;
%macro pbuffparms / parmbuff;
%*----Process this section when parameter values specified;
%if &syspbuff ne %then %do;
%let i=1;
%let month=%scan(&syspbuff,&i);
%do %while(&month ne);
proc print data=test
(where=(month(datesold)=&month));
title “Section Sales Report for Month &month”;
run;
%let i=%eval(&i+1);
%let month=%scan(&syspbuff,&i);
%end;
%end;
%mend;
%pbuffparms(4,6)
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.