Hi All,
I have a macro which is compiled prior to running my program in SDD. This is the macro:
%macro mr_sql_pct(numerator=, denominator=, newvar=, label=, decimal=1);
catt(put((sum(&numerator)/&denominator)*100, 5.&decimal)) as &newvar label="&label",
%mend mr_sql_pct;
I have code that is similar to the following:
proc sql noprint;
select count(distinct name) into :treated
from sashelp.class;
create table stats as
select
%mr_sql_pct(numerator=not missing(sex), denominator=%eval(&treated), newvar=pct, label=%)
sex label='Gender'
from sashelp.class
group by sex;
quit;
This code runs correctly in PC SAS, but in SDD if I even try to hit 'save' I get a message "Unmatched brackets were detected in the following statement(s)" and then it highlights everything from "create" to the semicolon. The program runs with errors, but I can't see where the unmatched brackets could possibly be. I have other programs that run similar macros in SDD, and only the programs that use a macro variable reference in the call to a macro are the ones that are giving these errors. So is the real problem the fact that I can't use this macro variable reference in the macro call? Is there a way to fix this without significant re-coding?
Thanks in advance for your help!
Cheers,
Mary R.
... View more