BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
newbie_ari
Fluorite | Level 6

 

Hi,

 

I've 2 datasets which has 6 columns in 1 dataset & another has 8 columns. But first 5 columns are same in both. Say first dataset name is A and another B. I want to merge the 2 dataset such that I get 9 total columns. Generally we merge using SQL in the following way:

 

 

proc sql;
create table example as
select a.*,b.var1,b.var2,b.var3
from A as a left join B as b
on a.key1 = b.key1 and a.key2 = b.key2 and a.key3 = b.key3 and a.key4 = b.key4 and a.key5 = b.key5;
quit;

And if I need to merge the table again and again, I've to repeatedly write the 5 keys again and again.

 

My question is, is there any way I can pass the key in macro and call the macro while merging? 

 

Thanks!

1 ACCEPTED SOLUTION
4 REPLIES 4
Reeza
Super User

Try a Natural JOIN instead.

newbie_ari
Fluorite | Level 6
@Reeza: Thanks for your reply. But could you please elaborate on what you mean by natural join.
newbie_ari
Fluorite | Level 6
@Reeza: Thanks a lot! Your answer was so uncommon I didn't bother to google it. I thought you wrote something wrong. I'm working on SQL for quite sometime & had the impression that I know SQL pretty well. But life has it's own way to show you your limitations & keeps you humble. Thanks again!

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 4 replies
  • 1328 views
  • 1 like
  • 2 in conversation