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

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

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