Hi
I need some help on SAS macro. Let me state the problem.
I have a data table that has name, date, salary columns. The salary is missing for some names in some dates. I would like to produce a report in which I want to include the footnote that says "Salary is missing for Name=&name in date=&date.
Here is the sample data table
Name Date Salary
Robert 01Feb2017 5000
Shyam 01Mar2017 2000
Dinesh 01May2017 3000
Shou 01Jul2017 .
Rishi 01Sep2017 4000
Noral 01Dec2017 .
;
Please help me on this. Thanks
You mean something like this?
proc sql noprint ;
select 'Name='||strip(name)||' in date='||strip(put(date,date9.)) INTO:footer separated by ' '
from dataset
where salary is missing ;
quit ;
footnote "Salary is missing for &footer." ;
proc print data=dataset ;
run ;
I don't think that FOOTNOTE is the right place in a report to list all names with missing salary,
unless you are sure there are less than 10 names. You better create two reports:
title ' Salary given to';
proc print data=have (where=(salary ne .)); /* optiona NOOBS */
var name date salary;
sumvar salary;
run;
title "Nmaes with missing salary";
proc print data=have(where=(salary is missing));
var name date;
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
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.