ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

ANY

ANYファンクションは、ブール式のいずれかの値がTRUEの場合にYESを返し、式のいずれの値もTRUEではない場合にNOを返すファンクションです。

戻り値

BOOLEAN

構文

ANY(boolean-expression [CACHE] [dimension ...] )

引数

boolean-expression

評価されるブール式。

CACHE

内部動作が若干変更されます。このキーワードは、元のパフォーマンスが非常に遅い場合にのみ指定してください。

dimension

結果のディメンションの名前。または、boolean-expressionのディメンションの1つと結果のディメンションとする別のディメンションとの間のリレーションの名前。

デフォルトでは、ANYはYES値またはNO値のどちらか1つを返します。結果の1つ以上のディメンションを指定すると、ANYは指定されているディメンションでTRUE値を調べ、値の配列を返します。各ディメンションは、boolean-expressionのディメンションであるか、そのディメンションの1つと関連付けられている必要があります。


ヒント:

指定したディメンションがboolean-expressionの実際のディメンションではなくboolean-expressionのディメンションに関連付けられたディメンションであり、かつ2つのディメンション間のリレーションが2つ以上ある場合は、ディメンション間のデフォルトのリレーションを使用して計算が行われます(デフォルトのリレーションの詳細は、RELATIONコマンドを参照)。このデフォルトのリレーションを使用しない場合は、リレーションの名前を指定して、関連付けられたディメンションを指定します。

注意

ANYでのNASKIPの影響

ANYはNASKIPオプションの影響を受けます。NASKIPの設定がYES(デフォルト)の場合、NAではない式のいずれかの値がTRUEであるときにANYはNA値を無視してYESを返し、いずれの値もTRUEではないときにNOを返します。NASKIPの設定がNOの場合、ANYは式のいずれかの値がNAであればNAを返します。式のすべての値がNAの場合は、NASKIPの設定にかかわらず、ANYはNAを返します。

DAY、WEEK、MONTH、QUARTERまたはYEAR型のデータ

boolean-expressionがDAY、WEEK、MONTH、QUARTERまたはYEAR型のディメンションによりディメンション化されている場合、他の任意のDAY、WEEK、MONTH、QUARTERまたはYEARディメンションを関連ディメンションとして指定できます。Oracle OLAPは、これらのディメンション間の暗黙的リレーションを使用します。これらのディメンションのいずれかと別のディメンションとのマッピング(週から月など)を制御するには、ディメンション間のリレーションを明示的に定義し、そのリレーションの名前をANYファンクションのdimension引数として指定します。

Oracle OLAPは、関連ディメンションの期間ごとに、ターゲット期間に終了するすべてのソース期間のデータ値を調べます。この方法は、どのディメンションがより上位の集計期間を保持しているかにかかわらず、適用されます。

例7-14 TRUE値の有無の調査(地区別)

スポーツウェアの売上が$150,000を超える月が最低1回あった地区を探すとします。ANYファンクションを使用して、いずれかの月でブール式(sales GT 150000)がTRUEであるかどうかを判断します。districtでディメンション化された結果を得るために、ANYファンクションの2番目の引数としてdistrictを指定します。

LIMIT product TO 'SPORTSWEAR'
REPORT HEADING 'High Sales' ANY(sales GT 150000, district)

この文によって生成される出力は、次のとおりです。

DISTRICT       High Sales
-------------- ----------
Boston                 NO
Atlanta               YES
Chicago                NO
Dallas                YES
Denver                 NO
Seattle                NO

例7-15 TRUE値の有無の調査(地域別)

スポーツウェアの売上が$150,000を超える地区が最低1つある月が最低1回あった地域も探すことができます。regionディメンションはdistrictディメンションに関連しているので、ANYの結果のディメンションとしてdistrictではなくregionを指定します。

report heading 'High Sales' any(sales gt 150000, region)

この文によって生成される出力は、次のとおりです。

REGION         High Sales
-------------- ----------
East                  YES
Central               YES
west                   NO