为SQL Server创建运行小计

时间:2013-01-22 20:35:42

标签: sql sql-server

我正在尝试获得一个运行小计(理解这与组的小计和汇总方法不同)。

尝试使用

Row_Number() over (order by ID_Number) as Row_Count 

并将其嵌套在select语句中并在其自身上使用LEFT OUTER JOIN(只是搅拌)。

我想要得到的是:

if ROW_COUNT > 1 THEN RUNNINGTOTAL = Volume_Category + (RUNNINGTOTAL for ID_Number where ROW_COUNT= ROW_COUNT(for this ID_Number*)-1)

我有一张表格,其中列出了唯一的“ID号码”,这是这里的重点。

2 个答案:

答案 0 :(得分:1)

除非您使用SQL Server 2012,否则执行累积求和的最简单方法是使用相关子查询。以下是代码的模板:

select t.*,
       (select sum(val) from t t2 where t2.ordercol <= t.ordercol) as cumesum
from t

2012年,您可以:

select t.*,
       sum(val) over (order by ordercol) as cumesum
from t

在这两者中,val是您想要求和的列,ordercol是指定排序的方式。

答案 1 :(得分:0)

试试这个:

SELECT
   T1.Id,
   SUM(T2.Amount) Total
FROM tbl T1
   JOIN Tbl T2
      ON T1.Id>= T2.Id
GROUP BY T1.Id