DATA Step, Macro, Functions and more

Need help on SAS Macro

Occasional Contributor
Posts: 12

Need help on SAS Macro


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

Occasional Contributor
Posts: 11

Re: Need help on SAS Macro

Posted in reply to UPRETIGOPI

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 ;
Trusted Advisor
Posts: 1,848

Re: Need help on SAS Macro

[ Edited ]
Posted in reply to UPRETIGOPI

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;



title "Nmaes with missing salary";

proc print data=have(where=(salary is missing));

var name date;



Ask a Question
Discussion stats
  • 2 replies
  • 3 in conversation