RUNTOTALファンクションは、式の現在までの合計を返します。RUNTOTALファンクションをROWコマンド、ROWファンクションまたはREPORTコマンドで使用すると、式の値の現在までの合計を生成できます。
パラメータ
レポートの現行の列についてOracle OLAPが累計する32の小計(1から32)のいずれか1つ。RUNTOTALは、指定された列の小計の値を返しますが、小計の値をゼロにリセットしません。
32の小計を参照する番号(1から32)には固有の意味はなく、すべての小計は参照されるまで同じです。
使用上の注意
RUNTOTALの機能
RUNTOTALは、SUBSTRファンクションと異なり、指示された小計をゼロにリセットせず、RUNTOTALで返す値を指示された小計に加えません。ただし、RUNTOTALが返す値は、現行の列に関して他の31の累計合計に加えられます。
別の列のデータへのアクセス
レポートの別の列に表示されている式でも、その式をRUNTOTALに追加することにより、現在までの合計を取得できます。COALESCEファンクションを使用すると、他の列の値を参照できます。たとえば、行の最初のデータ列にある月ごとの売上および2番目のデータ列にある売上の累計を表示するには、次の文を使用します。
ROW month sales COLVAL(-1) + RUNTOTAL(1)
小計のリセット
ROW文を使用してレポートを作成する場合、ZEROTOTAL文を使用して任意の列の小計をゼロにリセットできます。通常、ZEROTOTALはレポート・プログラムの開始時に使用し、最初にすべての合計がゼロになるようにします。REPORT文は、出力を生成する前に、自動的にすべての小計をゼロにリセットします。
NA値とRUNTOTAL
RUNTOTALは、すべての値がNA
ではないかぎり、NA
値を無視します。すべての値がNA
である場合、合計はNA
になります。
例
例8-94 レポートでの現在までの合計の計算
レポートで、列1の値の現在までの合計を列2に表示するとします。
次のOLAP DML文を発行します。
ZEROTOTAL ALL ROW W 4 R 2 RUNTOTAL(1) + COLVAL(1) ROW W 4 R 5 RUNTOTAL(1) + COLVAL(1) ROW W 4 R 3 RUNTOTAL(1) + COLVAL(1)
これらの文によって生成される出力は次のとおりです。
2 2.00 5 7.00 3 10.00
例8-95 2つの地区に関する現在までの合計の計算
この例では、2つの地区の1996年1から6月に関するテントの売上数量を示すレポートを作成します。月ごとのテントの売上数量とともに、これらの地区における売上数量の現在までの合計を表示します。この累計を生成するために、RUNTOTALファンクションを使用します。
LIMIT product TO 'Tents' LIMIT month TO 'Jan96' TO 'Jun96' LIMIT district TO 'Boston' 'Chicago' REPORT ACROSS district: units - DECIMAL 0 TOTAL(units, month)+RUNTOTAL(1)
これらの文によって生成される出力は次のとおりです。
PRODUCT: TENTS --------UNITS-------- ------DISTRICT------- TOTAL(UNIT S, MONTH)+RUN MONTH Boston Chicago TOTAL(1) -------------- ---------- ---------- ---------- Jan96 307 189 496 Feb96 209 190 895 Mar96 277 257 1,429 Apr96 372 318 2,119 May96 525 433 3,077 Jun96 576 466 4,119