HIERSHAPEファンクションは、階層ディメンションが指定されたシェイプを持つかどうかを識別します。
構文
HIERSHAPE(parent-relation[(qdr)] {LEVEL | RAGGED | SKIPLEVEL | REGULAR} USING levelrel -
[INHIERARCHY inhvalueset] LEVELORDER levelvalueset)
パラメータ
階層ディメンションの親子のセルフ・リレーションの名前を表すテキスト式。(「parentrelリレーション」を参照してください。)
parent-relationを修飾するQDRの名前を表すテキスト式。
このオプションは、すべてのメンバーが、levelrelで定義されているレベルと同じレベルの一部であるかどうかを決めます。
リーフ・ノードが階層内の異なるレベルに位置する階層。
1つ以上のリーフ・ノードが、その次の最も明らかなレベルより上位に位置する親にリンクされている階層。
それぞれの子が階層の次のレベルに位置する親を持つ、従来のレベルベース階層。
階層ディメンションのレベル・リレーションの名前を表すテキスト式。(「levelrelリレーション」を参照してください。)
階層ディメンションのinhier値セットの名前を表すテキスト式。(「inhier値セットまたは変数」を参照してください。)
階層ディメンションのhierlevels値セットの名前を表すテキスト式。(「hierlevels値セット」を参照してください。)
使用上の注意
スターに矛盾しない階層
ディメンションのすべてのレベル階層を、ディメンション・レベルごとに1つの列およびリーフ・メンバーごとに1つの行を持つ単一の表として表すことができる場合、ディメンションはスターに矛盾しません。このように表すことができない場合、ディメンションはスターに矛盾します。
スターに矛盾するディメンションの例として、時間ディメンションにYEAR、QUARTERおよびMONTHという3つのレベルがあり、さらにFISCALおよびCALENDARという2つの階層があるとします。両方の階層には、降順に、YEAR、QUARTERおよびMONTHというレベルがあります。階層には次のメンバーがあるとします。
CALENDAR階層:
CY2012
CYQ1_2012
Jan_2012
Feb_2012
Mar_2012
CYQ2_2012
Apr_2012
May_2012
Jun_2012
...
FISCAL階層:
FY2012
FYQ1_2012
Apr_2012
May_2012
Jun_2012
FYQ2_2012
Jul_2012
Aug_2012
Sep_2012
...
これは有効かつ矛盾しないディメンションですが、1つの表で3つの列のみを使用して表すことができないため、スターに矛盾します。たとえば、MONTHがApr_2012である列には、CYQ2_2012およびFYQ1_2012というQUARTERに対する2つの異なる値が必要になりますが、これは可能ではありません。
このディメンションをスターに矛盾にしないようにするには、MONTHレベルを、FISCAL_MONTHおよびCALENDAR_MONTHという2つの異なるレベルに置き換え、同様に、YEAR年レベルを、FISCAL_YEARおよびCALENDAR_YEARに置き換える必要があります。