QUALファンクションを使用すると、修飾データ参照(QDR)を明示的に指定できます。QDRの構文があいまいで、Oracle OLAPによる誤った解釈や構文エラーが発生するおそれのある場合に、QUALを使用してください。
QDRは、式の1つ以上のディメンションを単一の値に制限する機能を提供します。QDRは、現行のステータスにない値を一時的に参照する場合に役立ちます。
パラメータ
修飾される式。QUALは、計算、ファンクション・コールまたはアンパサンド置換が含まれる複雑な式を修飾するときに使用します。QUALは、式が単純な変数名である場合にも使用できます。ただし、QUALは単純な式の場合には必要なく、次に示す標準のQDR構文を使用できます。
expression(dimname1 dimexp1 [, dimname2 dimexp2 ...])
制限されるディメンション。式のディメンションを1つ以上指定できます。各ディメンションは、dimexpとペアになっている必要があります。ディメンションのかわりにディメンション・サロゲートを指定できます。
ディメンションを制限する値を表す式。この式は、ディメンションの値、結果がディメンションの値となるテキスト式、結果がディメンションの値の論理位置となる数式、ディメンションのリレーションのいずれでもかまいません。
制限されるディメンションが結合ディメンションである場合、dimexpは山カッコで囲み、そのベース・ディメンションごとの値を含める必要があります。
制限されるディメンションが連結ディメンションである場合、dimnameおよびdimexpは、表8-10「連結ディメンションに関するdimnameおよびdimexpの有効な組合せ」に示す組合せの1つになります。
例
例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変数は、month、productおよび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