|
/* in sql, use coalesces() function with left join */
/* in data step merge, sort both data set by id, */
/* and have same name for price variables */
data Prd_price;
input Id $4. price;
datalines;
0001 110
0002 120
0003 130
0004 140
; run;
data sale;
input Id $4. price;
datalines;
0001 111
0003 133
; run;
proc sql noprint;
create table result as
select a.id, coalesce(b.new_price, a.price) as price
from prd_price a left join
(select id, price*1.03 as new_price
from sale ) as b
on a.id=b.id;
quit;
/* use merge */
data sale_new;
set sale;
price = price*1.03;
run;
proc sort data=prd_price; by id; run;
proc sort data=sale_new; by id; run;
data new_price;
merge prd_price sale_new;
by Id;
run;
|