declare @a table (id int,a int,b int,c int)
insert @a values(1,1,10,2)
insert @a values(1,2,11,3)
insert @a values(1,3,12,4)
insert @a values(2,4,13,5)
insert @a values(2,5,14,6)
insert @a values(2,6,15,7)select *,0 a1,0 a2 into #temp from @a
declare @t0 int,@t1 int,@t2 int,@t4 int
declare @y0 int,@y1 int
update #temp set 
@t1=case when @t2=id then (a-@t0)*@t4 else 0 end,@t0=a,a1=@t1,
@y1=case when @t2=id then (b-@y0)*@t4 else 0 end,@y0=b,@t2=id,@t4=c,a2=@y1
select sum(a1) a1,sum(a2) a2 from #temp group by id
drop table #temp