DATA Step, Macro, Functions and more

left join on multiple conditions

Reply
Frequent Contributor
Posts: 133

left join on multiple conditions

Why following doesn't work? how do I fix it?

I want to left join first on p_id, then on instid. but you see the last row in h dataset in the resultant data set doesn't exist, which is not correct.


data t;

input instid p_id wt;

cards;

1 1 .5

1 2 .3

;

data h;

input instid p_id pv;

cards;

1 1 3

1 2 4

1 3 10

;

proc sql;

create table fnl as

select h.*, t.wt from t left join h on t.instid = h.instid and t.p_id = h.p_id

order by instid, p_id;

quit;

Respected Advisor
Posts: 4,920

Re: left join on multiple conditions

That's the way it should be. If you want all lines from h then you should ask for a right join instead. - PG

PG
Ask a Question
Discussion stats
  • 1 reply
  • 5542 views
  • 0 likes
  • 2 in conversation