Dear experts, I already tested the following script: /* check 03: count missing */ proc sql; create table base_missing as select VPS_AUFENTHALTSLAND, case when VPS_AUFENTHALTSLAND in ('',' ','-','.') then 1 else 0 end as missing, case when VPS_AUFENTHALTSLAND ='NB' then 1 else 0 end as default_value from in.test ;run; proc sql; create table base_missing as select sum(missing) as num_missing, sum(default_value) as num_def_value from base_missing ;run; proc sql; update DC.input_analysis_res set number_missing_calc = (select num_missing FROM base_missing) WHERE Variable_Name_Original='VPS_AUFENTHALTSLAND' ;run; proc sql; update DC.input_analysis_res set number_def_value = (select num_def_value FROM base_missing) WHERE Variable_Name_Original='VPS_AUFENTHALTSLAND' ;run; and it works correctly. Now I would like to call it in a macro: step1: %macro macro_missing (var=,def_val=); proc sql; create table base_missing as select "&VAR", case when "&VAR" in ('',' ','-','.') then 1 else 0 end as missing, case when "&VAR" ="&def_val" then 1 else 0 end as default_value from in.test ;run; proc sql; create table base_missing as select sum(missing) as num_missing,sum(default_value) as num_def_value from base_missing ;run; proc sql; update DC.input_analysis_res set number_missing_calc = (select num_missing FROM base_missing) WHERE Variable_Name_Original="&VAR" ;run; proc sql; update DC.input_analysis_res set number_def_value = (select num_def_value FROM base_missing) WHERE Variable_Name_Original="&VAR" ;run; %mend macro_missing; step 2: data _null_; set DC.input_analysis_res; if Variable='VPS_AUFENTHALTSLAND'; call execute('%macro_missing (var='||strip(variable_name)||'def_val='||strip(Default_value)||');'); run; I get neither an error message nor the expected results. Do someone have a suggestion? I do not see any error. Thanks in advance.
... View more