BookmarkSubscribeRSS Feed
VinnyR
Calcite | Level 5

 

Edited...

 

How would I in a Proc SQL statement maintain this datastep: Also, I want to obtain a cartesian product so there is a deviation form datastep but it will be controlled by a where clause in the Proc SQl Code.

 

data want;

   merge dset_1 dset_2;

   by "some common variable properly sorted";

   if dset_1.var1 = dset_2.var1 then do;

     dset_1.var2=dset_2.var2;

     dset_1.var3=dset_2.var3;

  end;

  else do;

    dset_1.var1= "Missing";

    dset_1.var2= "Missing"; 

 end;   

run;

 

Somebody please help me understand this. I tried various combinations nothing worked.

 

Regards,

Vinny.

4 REPLIES 4
tomrvincent
Rhodochrosite | Level 12

I don't know what 'contelled' is, but what do you want to happen if dset_1.var1 is not equal to dset_2.var1?

VinnyR
Calcite | Level 5

Hi Tom,

 

I am sorry about that...updated the information.Thanks for noticing and notifying.

 

Regards,

Vinny.

tomrvincent
Rhodochrosite | Level 12

so you'd want to do a left join between the 2 tables.  Then your case statement can be something like

 

case when table2.var is missing then 'missing' else table2.var end

LinusH
Tourmaline | Level 20
You'll need a case for each var assignment, hence repeating of some logic - one little drawback for SQL over the data step.
Data never sleeps

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!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 1285 views
  • 0 likes
  • 3 in conversation