I have created a proc SQL statements to merge datasets in a given year. I would like to repeat this merge step for many years.
Here is my sample program for the year 1985.
proc sql;
create table folder1.OPT_price1985 as
select a.*, b.*
from folder1.OPT1985 as a , folder1.price1985 (keep = secid date close volume) as b
where a.secid = b.secid and a.date = b.date;
quit;
I would like to repeat this like a do loop for 20 years. I tried the do loop macro but it did not work.
Hi, anitha
This should get you started. Just change the 1984 %to 1986 to your range.
Tom
%macro MultiYearSQL;
%do yr=1984 %to 1986;
proc sql;
create table folder1.OPT_price&yr as
select a.*, b.*
from folder1.OPT&yr as a , folder1.price&yr (keep = secid date close volume) as b
where a.secid = b.secid and a.date = b.date;
quit;
%end;
%mend MultiYearSQL;
%MultiYearSQL
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.