BookmarkSubscribeRSS Feed
jeremyyjm
Calcite | Level 5

/*method1*/

data exe1;

input id $ dep $ salary;

cards;

1003 bd .

;

data exe2;

input id $ dep $ salary;

cards;

1001 ac 2100

1003 bd 2900

;

proc sql;

select exe1.id, exe1.dep,exe2.salary

from exe1 left join exe2

on exe1.id=exe2.id

and exe1.dep=exe2.dep;

quit;

/*method2*/

data e1;

input id $ dep $ age ;

cards;

1001 ac 23

1002 ac 25

1001 bk 19

1003 bd 22

;

data e2;

input id $ dep $ salary;

cards;

1001 ac 2300

1002 ac 2500

1001 bk 1900

;

data e3;

input id $ dep $ salary;

cards;

1001 ac 2100

l003 bd 2900

;

proc sql;

create table a as

select e1.id,e1.dep,salary

from e1 left join e2

on e1.id=e2.id

and e1.dep=e2.dep

where salary is not null;

quit;

proc sql;

create table b as

select e1.id,e1.dep,salary

from e1 left join e2

on e1.id=e2.id

and e1.dep=e2.dep

where salary is null;

quit;

proc sql;

select b.id,b.dep,e3.salary

from b left join e3

on b.id=e3.id

and b.dep=e3.dep;

quit;

 

Can someone help me, why there are two different results from method 1 and method 2?

2 REPLIES 2
SuryaKiran
Meteorite | Level 14

Check your e3 dataset. It's not 1003 you have there 'l' Letter 'L' instead of one '1'.

Capture.PNG

Thanks,
Suryakiran
jeremyyjm
Calcite | Level 5

thank you so much Suryakiran

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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
  • 2 replies
  • 1253 views
  • 2 likes
  • 2 in conversation