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に置き換える必要があります。