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 に答える