sql的组合
data a;
input Item $ Range Sale
;
cards;
A 0 10
A 1 20
A 2 20
B 0 10
B 2 20
B 3 30
run;
proc sql;
create table final as
select c.item,c.range,case when missing(a.sale) then 0 else a.sale end as sale from
(select distinct item,b.range from a
, (select distinct range from a) as b) as c
left join a
on c.item=a.item and c.range=a.range ;
quit;
楼主的问题,并没有阐述清楚,我觉得你最好能把问题描述的再 open 一些,而不像这么局限,如 range 的取值,0,1,2,3,能不能理解成是一个范围,或者仅是几个数值;在比如data a是否已经排序,range的值是否也可能缺0 1 2,等等。这些个情况不说明,即便是写出来,你到时候也不一定好用。