This works, but there is not a single case in the "have" table that meets condition (1).
data have;
input var1 var2 var3 ;
datalines;
1400.00 165.55 839.57
0.00 0.00 106.42
1200.00 142.98 725.09
0.00 0.00 91.91
270.00 0.00 168.85
0.00 0.00 67.54
0.00 0.00 33.61
270.00 0.00 0.00
0.00 0.00 168.85
0.00 0.00 101.15
155.00 1.70 150.00
0.00 0.00 3.30
;
run;
data have1;
set have;
retain group 0;
if var1 ne 0 then group=group+1;
run;
data want;
set have1;
by group;
retain sum_var1 0 sum_var2_var3 0;
if first.group and last.group=0 then do;
sum_var1=var1;
sum_var2_var3=sum(var2,var3);
end;
else if first.group=0 and last.group=0 then do;
sum_var1=sum(sum_var1,var1);
sum_var2_var3=sum(sum_var2_var3,sum(var2,var3));
end;
else do;
sum_var1=sum(sum_var1,var1);
sum_var2_var3=sum(sum_var2_var3,sum(var2,var3));
if sum_var1 < sum_var2_var3 then new=1;
else new=0;
end;
drop sum_var1 sum_var2_var3;
run;
... View more