ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

SUBTOTAL

SUBTOTALファンクションは、レポートで累計される小計の1つの値を返すファンクションです。通常はROWコマンド内でSUBTOTALファンクションを使用して、レポートに小計または総計を追加します。Oracle OLAPは各列に32の現在までの合計を保持するため、最大32レベルの小計を含めることができます。


注意:

REPORT文では、GRANDTOTALSおよびSUBTOTALSキーワードを使用して、総計および小計の行を含めます。

戻り値

DECIMAL

構文

SUBTOTAL(n)

パラメータ

n

レポートにおける各数値列の現在までの合計のレベルを示すINTEGER値。たとえば、「Total」をレベル1の小計に、「Grand Total」をレベル2の小計にできます。列には最大32レベルの現在までの合計を含めることができるため、nは1から32のINTEGERにする必要があります。SUBTOTALは、現行の列のこの小計の値を返し、小計nの値をゼロにリセットします。

32の小計を参照する番号(1から32)には固有の意味はなく、すべての小計は参照されるまで同じです。

使用上の注意

自動的な小計のリセット

ROWコマンドでSUBTOTALファンクションを使用して現行の列の小計を含める場合、そのレベルの小計はゼロにリセットされます。

ZEROTOTALによる小計のリセット

ROWコマンドを使用してレポートを作成する場合、ZEROTOTAL文を使用すると任意の列の小計をゼロにリセットできます。通常、ZEROTOTALはレポート・プログラムの開始時に使用し、最初にすべての合計がゼロになるようにします。

NA値とSUBTOTAL

SUBTOTALは、NA値を無視します。すべての値がNAの場合、SUBTOTALはゼロを返します。

例8-124 レポートにおける小計および総計の計算

売上レポートに、各地域の小計を表示するとします。レポートの終わりには、すべての売上の総計も表示するとします。SUBTOTAL(1)を使用して、各地域の小計を生成できます。この小計は、使用するたびに0にリセットされるため、各地域別の小計が計算されます。レポートの終わりには、SUBTOTAL(2)を使用して総計を生成できます。レポート内ではこれを使用していないため、すべての地域の売上高の合計が保持されます。

LIMIT month TO FIRST 3
LIMIT region TO ALL
ZEROTOTAL ALL
FOR region
   DO 
   ROW region
   LIMIT DISTRICT TO region
   FOR district
      DO
      ROW INDENT 5 district ACROSS month: sales
      DOEND
   ROW INDENT 5 'Total' ACROSS month: OVER '-' SUBTOTAL(1)
   BLANK
   DOEND
ROW 'Grand Total' ACROSS month: OVER '=' SUBTOTAL(2)

このプログラムによって生成される出力は、次のとおりです。

East
     Boston     32,153.52  32,536.30  43,062.75
     Atlanta    40,674.20  44,236.55  51,227.06
               ---------- ---------- ----------
     Total      72,827.72  76,772.85  94,289.81
Central
     Chicago    29,098.94  29,010.20  39,540.89
     Dallas     47,747.98  50,166.81  67,075.44
               ---------- ---------- ----------
     Total      76,846.92  79,177.01 106,616.33
West
     Denver     36,494.25  33,658.24  45,303.93
     Seattle    43,568.02  41,191.28  51,547.23
               ---------- ---------- ----------
     Total      80,062.27  74,849.52  96,851.16
 
               ========== ========== ==========
Grand Total    229,736.91 230,799.38 297,757.30