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

前
 
次
 

QUAL

QUALファンクションを使用すると、修飾データ参照(QDR)を明示的に指定できます。QDRの構文があいまいで、Oracle OLAPによる誤った解釈や構文エラーが発生するおそれのある場合に、QUALを使用してください。

QDRは、式の1つ以上のディメンションを単一の値に制限する機能を提供します。QDRは、現行のステータスにない値を一時的に参照する場合に役立ちます。

戻り値

戻り値のデータ型は、修飾される式と同じです。

構文

QUAL(expressiondimname1 dimexp1 [, dimnameN dimexpN])

パラメータ

expression

修飾される式。QUALは、計算、ファンクション・コールまたはアンパサンド置換が含まれる複雑な式を修飾するときに使用します。QUALは、式が単純な変数名である場合にも使用できます。ただし、QUALは単純な式の場合には必要なく、次に示す標準のQDR構文を使用できます。

expression(dimname1 dimexp1 [, dimname2 dimexp2 ...])

dimname

制限されるディメンション。式のディメンションを1つ以上指定できます。各ディメンションは、dimexpとペアになっている必要があります。ディメンションのかわりにディメンション・サロゲートを指定できます。

dimexp

ディメンションを制限する値を表す式。この式は、ディメンションの値、結果がディメンションの値となるテキスト式、結果がディメンションの値の論理位置となる数式、ディメンションのリレーションのいずれでもかまいません。

制限されるディメンションが結合ディメンションである場合、dimexpは山カッコで囲み、そのベース・ディメンションごとの値を含める必要があります。

制限されるディメンションが連結ディメンションである場合、dimnameおよびdimexpは、表8-10「連結ディメンションに関するdimnameおよびdimexpの有効な組合せ」に示す組合せの1つになります。

表8-10 連結ディメンションに関するdimnameおよびdimexpの有効な組合せ

dimname dimexp

連結ディメンションの名前

連結ディメンションの値

連結ディメンションの名前

ベース・ディメンションの名前

連結ディメンションのベース・ディメンションの名前

ベース・ディメンションの値

連結ディメンションのベース・ディメンションの名前

連結ディメンションの名前


例8-62 QUALとMAXの組合せ

次の例は、最初に、データのディメンションを制限することによってデータがどのように表示されるかを示し、次に、QUALを使用した場合はどのように表示されるかを示します。

次のOLAP DML文を発行して、1996年1月から1996年6月までのスポーツ用品部門における売上原価の系列データの表示を制限し、次に毎月の実際原価または予算原価の最大値(MAX(actual,budget))、実際原価、および予算原価について月ごとのレポートを作成します。

LIMIT month TO 'Jan96' TO 'Jun96'
LIMIT line TO 'Cogs'
LIMIT division TO 'Sporting'
REPORT DOWN month W 11 MAX(actual,budget) W 11 actual W 11 budget

この文によって生成されるレポートは、次のとおりです。

DIVISION: SPORTING
               ---------------LINE----------------
               ---------------COGS----------------
               MAX(ACTUAL,
MONTH            BUDGET)     ACTUAL      BUDGET
-------------- ----------- ----------- -----------
Jan96           287,557.87  287,557.87  279,773.01
Feb96           323,981.56  315,298.82  323,981.56
Mar96           326,184.87  326,184.87  302,177.88
Apr96           394,544.27  394,544.27  386,100.82
May96           449,862.25  449,862.25  433,997.89
Jun96           457,347.55  457,347.55  448,042.45

今度は、lineまたはdivisionのステータスを変更せずに、MAX(actual,budget)の同じ数値がどのように表示されるかを確認します。

ALLSTAT
LIMIT month TO 'Jan96' TO 'Jun96'
REPORT HEADING 'For Cogs in Sporting Division' DOWN month -
   W 11 HEADING 'MAX(actual,budget)'-
   QUAL(MAX(actual,budget), line 'Cogs', division 'Sporting')

For Cogs in
Sporting       MAX(actual,
Division         budget)
-------------- -----------
Jan96           287,557.87
Feb96           323,981.56
Mar96           326,184.87
Apr96           394,544.27
May96           449,862.25
Jun96           457,347.55

標準のQDR構文を使用して同じレポートを生成しようとすると、エラーが発生します。

REPORT HEADING 'For Cogs in Sporting Division' DOWN month -
   W 11 HEADING 'MAX(actual,budget)'-
   MAX(actual,budget) (line cogs, division sporting)

次のエラー・メッセージが生成されます。

ERROR: A right parenthesis or an operator is expected after LINE.

例8-63 QUALと連結ディメンションの組合せ

次の例は、QUALファンクションで連結ディメンションの値を制限する2つの方法を示します。reg.dist.ccdim連結ディメンションには、そのベース・ディメンションとしてregionおよびdistrictがあります。rdsales変数は、monthproductおよびreg.dist.ccdimによってディメンション化されています。

LIMIT month TO 'Jan96' TO 'Jun96'
LIMIT product TO 'Tents' 'Canoes'
 
" Limit the concat by specifying one of its component dimensions
REPORT W 30 QUAL(rdsales * 2, month 'Feb96', district 'Boston')

この文によって生成されるレポートは次のとおりです。

                 QUAL(RDSALES * 2, MONTH
PRODUCT          'Feb96', DISTRICT 'Boston')
-------------- ------------------------------
Tents                               69,283.18
Canoes                             164,475.36
 
" Limit the concat by specifying one of its values
REPORT W 30 QUAL(rdsales * 2, month 'Mar96', reg.dist.ccdim  '<district: Boston>')
 
                  QUAL(RDSALES * 2, MONTH
                  'Mar96', REG.DIST.CCDIM
PRODUCT            '<district: Boston>')
-------------- ------------------------------
TENTS                               91,484.42
CANOES                             195,244.56