[code:2wmz580v]
data a;
infile datalines;
input name $ date:yymmdd10. value;
format date yymmdd10.;
datalines;
A 20070101 1
A 20070102 2
A 20070103 3
A 20070104 4
A 20070105 5
A 20070106 6
A 20070107 7
B 20070101 8
B 20070102 9
;
run;
data b;
infile datalines;
input name $ sdate:yymmdd10. edate:yymmdd10.;
format sdate edate yymmdd10.;
datalines;
A 20070102 20070106
A 20070101 20070104
B 20070101 20070102
;
run;
data c;
set b;
date=sdate;
set a key=idx;
svalue=value; evalue=.; tvalue=value;
do date=(sdate+1) to edate;
set a key=idx;
select (_iorc_);
when(%sysrc(_sok)) tvalue=tvalue+value;
when(%sysrc(_dsenom)) _error_=0;
otherwise;
end;
end;
evalue=value;
keep name sdate edate svalue evalue tvalue;
run;
[/code:2wmz580v]