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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.