Вы можете сделать это с помощью LEFT JOIN в процедуре sql
, взяв все переменные из one
, затем сделав 2 условия для заполнения startrange
и endrange
с 0
в случае отсутствия.
proc sql noprint;
create table want as
select t1.*
, case when t2.startrange=. then 0 else t2.startrange end as startrange
, case when t2.endrange=. then 0 else t2.endrange end as endrange
, t2.typeofservice
from one t1 left join two t2
on (t1.mileage = t2.startrange)
;run;quit;
Или сделать это в 2 шага (лично я нахожу if для очистки шага данных, чем case when
в proc sql.)
proc sql noprint;
create table want as select *
from one t1 left join two t2 on (t1.mileage = t2.startrange)
;run;quit;
data want; set want;
if startrange=. then do; startrange=0; endrange=0; end;
run;