2
全体の累積値を追加し、私は次のようなデータを持っていると言う:は年と月
select 1 id, 'A' name, '2007' year, '04' month, 5 sales from dual union all
select 2 id, 'B' name, '2007' year, '05' month, 2 sales from dual union all
select 3 id, 'B' name, '2008' year, '12' month, 3 sales from dual union all
select 4 id, 'B' name, '2009' year, '12' month, 56 sales from dual union all
select 5 id, 'C' name, '2009' year, '08' month, 89 sales from dual union all
select 6 id, 'A' name, '2010' year, '12' month, 4 sales from dual union all
select 7 id, 'C' name, '2011' year, '12' month, 24 sales from dual union all
select 8 id, 'D' name, '2012' year, '12' month, 15 sales from dual union all
select 9 id, 'D' name, '2013' year, '12' month, 12 sales from dual union all
select 10 id,'D' name, '2014' year, '12' month, 16 sales from dual union all
select 11 id,'A' name, '2015' year, '07' month, 18 sales from dual union all
select 12 id,'B' name, '2015' year, '09' month, 29 sales from dual union all
select 13 id,'B' name, '2016' year, '01' month, 10 sales from dual union all
select 14 id,'A' name, '2016' year, '02' month, 8 sales from dual union all
select 15 id,'D' name, '2016' year, '03' month, 12 sales from dual union all
select 16 id,'E' name, '2016' year, '04' month, 34 sales from dual
私が累積的にすべてのすべての年にわたる販売とそれらの各期間(ヶ月)をアップ追加したいです。 出力は次のようになります。
name year month sale opening bal closing bal
A 2007 04 5 0 5
A 2007 05 2 5 7
B 2008 12 3 12 15
B 2009 12 56 15 71
C 2009 08 89 71 160
A 2010 12 4 160 164
C 2011 12 24 164 188
D 2012 12 15 188 203
D 2013 12 12 203 215
D 2014 12 16 215 231
A 2015 07 18 231 249
B 2015 09 29 249 278
B 2016 01 10 278 288
A 2016 02 8 288 296
D 2016 03 12 296 308
E 2016 04 34 308 342
期首残高は前月の期末残高であり、それは来年の期首残高よりも、来年になった場合、前年度の決算残高です。それはその後の年のようにこれのように働くことができるはずです。
私はOracle 12cで作業しています。
ありがとうございます。
実際のシナリオではこんにちは。私は名前、年齢、住所などの多くの列を識別しています。あなたのソリューションにパーティションを追加していますが、正しい結果が返されません。 (名前、年齢、年齢、年別の住所順) – bytebiscuit
@bytebiscuit:しかしゴードンの答えは正しいです。これは単純な実行合計です。考えてみたいことは、売上を加算したいグループ(パーティション)内にあることだけです。 –