BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
NewUsrStat
Pyrite | Level 9

Hi guys, 

suppose to have the following two datasets: 

 

data DB;
  input ID $20. Codes Index_1;
cards;
0001 2134  1
0001 87    0
0002 154   1 
0002 65    0
0003 88    1
0003 34    0
0003 78    0
run;


data DB1;
  input Codes Index_2;
cards;
2134  6
87    4
154   2 
65    6
88    1
34    3
78    5
run;

Is there a way to add Index_2 from DB1 to DB only when Index_1 from DB is  = 1 to get the following? 

 


data DB2;
  input ID $20. Codes Index_1 Index_2;
cards;
0001 2134  1    6
0001 87    0    0
0002 154   1    2
0002 65    0    0
0003 88    1    1
0003 34    0    0
0003 78    0    0
run;

Thank you in advance

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User
data db2;
set db;
if _n_ = 1
then do;
  length index_2 8;
  declare hash db1 (dataset:"db1");
  db1.definekey("codes");
  db1.definedata("index_2");
  db1.definedone();
end;
if index_1
then rc = db1.find();
else index_2 = 0;
drop rc;
run;

View solution in original post

1 REPLY 1
Kurt_Bremser
Super User
data db2;
set db;
if _n_ = 1
then do;
  length index_2 8;
  declare hash db1 (dataset:"db1");
  db1.definekey("codes");
  db1.definedata("index_2");
  db1.definedone();
end;
if index_1
then rc = db1.find();
else index_2 = 0;
drop rc;
run;

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!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 466 views
  • 1 like
  • 2 in conversation