0

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

尝试使用

Row_Number() over (order by ID_Number) as Row_Count 

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

我想要得到的是:

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

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

4

2 回答 2

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是指定顺序的方式。

于 2013-01-22T20:39:06.523 回答
0

尝试这个:

SELECT
   T1.Id,
   SUM(T2.Amount) Total
FROM tbl T1
   JOIN Tbl T2
      ON T1.Id>= T2.Id
GROUP BY T1.Id
于 2013-01-22T20:44:00.070 回答