So I am trying to combine a bunch of tables into one based on certain conditions. I am not sure how I would write a macro or do loop for it so I dont have to repeat the union step for each table.
This is what I have so far, and would need to do for ~80 tables
create table test as select monthend, loan_no, balance, portfolio, DELQIND180 from lp.lp_200512
where DELQIND180 ne "0" and portfolio="CORE" or portfolio="NAT"
union
select monthend, loan_no, balance, portfolio, DELQIND180 from lp.lp_200601
where DELQIND180 ne "0" and portfolio="CORE" or portfolio="NAT"
union
select monthend, loan_no, balance, portfolio, DELQIND180 from lp.lp_200602
where DELQIND180 ne "0" and portfolio="CORE" or portfolio="NAT";
quit;
Hello,
Try this...
Data final;
set lp_200512 - lp_200600; // ( Specify the Range here )
run;
// This prog will append all the data sets from lp_200512 to lp_200600..
I forgot to mention, it is by month/year, so its 200512, 200601, 200602...200612, 200701, etc.
Okey,
Try this
Data final;
set lp_200512 -- lp_200712; // ( Specify "--" will append all the data sets which are between 200512 to 200712)
run;
If you want to combine ALL the data set names that have the right naming pattern, you could use:
data want;
set ip.ip_20: ;
where ...;
run;
The WHERE statement would be applied to all the data sets.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.