BookmarkSubscribeRSS Feed
anitha
Calcite | Level 5

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.

1 REPLY 1
TomKari
Onyx | Level 15

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

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 660 views
  • 0 likes
  • 2 in conversation