Bạn có thể sử dụng CTE
create table table1
(
COL int,
COL1 int,
COL2 int,
COL3 int
)
insert into table1
(COL,COL1,COL2,COL3)
values
(1, 2, 3, 6),
(4, 5, 6, 15),
(7, 8, 9, 24)
select
rank() OVER (ORDER BY COL3) as [Rank],
t1.COL,
t1.COL1,
t1.COL2,
t1.COL3
into #temp1
from table1 t1
;WITH x AS
(
SELECT
[Rank],
COL,
COL1,
COL2,
COL3,
Total=COL3
FROM #temp1
WHERE [Rank] = 1
UNION ALL
SELECT
y.[Rank],
y.COL,
y.COL1,
y.COL2,
y.COL3,
x.Total+(y.COL3)
FROM x INNER JOIN #temp1 AS y
ON y.[Rank] = x.[Rank] + 1
)
SELECT
COL,
COL1,
COL2,
COL3,
Total
FROM x
OPTION (MAXRECURSION 100);
SQL FIDDLE
Để cho một số hoạt động có ý nghĩa, bạn cần một số cách để xác định những gì * để * các giá trị nên được bổ sung. Một trong các cột bạn đã hiển thị cột sẽ được sử dụng để xác định thứ tự của các hàng? Nếu không, bạn cần thêm cột. –