私の同僚には私が彼を助けようとしている問題があります。列Aが変更されたときに表示されるSQL Serverクエリ合計がリセットされます
彼は次のようなデータ(サンプルデータ)を含むSQLビューを持っている: -
Category Value
Cat A 10
Cat A 20
Cat A 30
Cat B 15
Cat B 15
Cat C 10
Cat C 10
彼はValue列の累計を保つビューに列を追加したいと考えています。
この列は、カテゴリが変更されたときに実行中の合計をリセットする必要があります。
ので、出力データは次のようにする必要があります -
Category Value Running
Cat A 10 10
Cat A 20 30
Cat A 30 60
Cat B 15 15
Cat B 15 30
Cat C 10 10
Cat C 10 20
我々はこのようにそれ自体にテーブルを結合して累計を得ることができる: -
select t1.id, t1.[count], SUM(t2.[count]) as sum
from TableA t1
inner join TableA t2 on t1.id >= t2.id
group by t1.id, t1.[count]
order by t1.id
問題は致しておりませんID列があり、カテゴリーが変更されたときに実行中の合計がリセットされるように指示する方法はありますか?
と組み合わせる
ROW_NUMBER()
機能を使用することができますか?これは、最終的に(完全に)ウィンドウ関数をサポートしているため、SQL Server 2012では非常に簡単です。 –残念ながら、SQL Server 2005。 –
実行中の合計の順序はどのように計算されますか?テーブルに日付フィールドはありますか? – Dibstar