MULTIPATHHIERオプションは、詳細データが含まれる特定のセルに、集計データが含まれるセルへの複数のパスを設定できることを指定するオプションです。計算によって、このような複数パスの集計が必要です。
使用上の注意
MULTIPATHHIERを使用する場合
MULTIPATHHIERオプションは、複数パスを必要とする計算の場合にのみYES
に設定します。
XSHIERCK01エラー・メッセージの解釈
AGGREGATEコマンドを使用すると、ディメンション階層に循環性がないかどうかが自動的に確認されます。MULTIPATHHIERをNO
に設定した場合、またはデフォルトのNO
を変更していない場合、詳細データ・セルが同一の集計データ・セルへの複数パスを使用すると、次のエラー・メッセージが表示されます。
ERROR: (XSHIERCK01) One or more loops have been detected in your hierarchy n over N. The loops include 2 items (UNDIRECTED: X and Y).
このエラー・メッセージのX
は詳細データ・セルの名前であり、Y
は詳細データ・セルが集計で複数パスを使用する祖先セルの名前です。詳細は、例5-68「階層内の複数パスの定義」を参照してください。
詳細データ・セルによって使用される複数パスが循環階層とみなされるために、このエラー・メッセージが表示されます。循環階層がなく、複数パスを作成する意図がない場合は、階層を変更します。複数パスを作成する場合は、MULTIPATHHIERオプションをYES
に設定します。
例
例5-68 階層内の複数パスの定義
この例は、階層に複数パスを定義する方法、データ集計時に表示されるエラー・メッセージ、そのメッセージの解釈、および問題の解決方法を示します。
次の文は、詳細データ・セルから集計データが含まれる祖先セルまでの2つのパスを作成します。
DEFINE geog TEXT DIMENSION DEFINE path INTEGER DIMENSION DEFINE geog.geog RELATION geog <geog path> MAINTAIN geog ADD 'A1' 'b1' 'b2' 'Top' MAINTAIN path ADD 2 geog.geog(geog 'A1' path 1) = 'B1' geog.geog(geog 'A1' path 2) = 'B2' geog.geog(geog 'B1' path 1) = 'Top' geog.geog(geog 'B2' path 1) = 'Top'
最初に、geog
という名前の地理ディメンションと、path
という2番目のディメンションが定義されます。
地理ディメンションがそれ自身とpath
ディメンションによってディメンション化される、geog.geog
という名前のリレーションが定義されます。
A1
、B1
、B2
およびTop
という名前のディメンション値がgeog
ディメンションに追加されます。
2つのディメンション値がpath
ディメンションに追加されます。path
はINTEGER
データ型で定義されたので、これに自動的に割り当てられるディメンション値はINTEGER
値の1
および2
です。
最後に、geog
ディメンションの階層が作成されます。A1
ディメンション値は詳細データです。B1
およびB2
のディメンション値は、階層の2番目のレベルです。TOP
ディメンション値は階層の最上位です。
A1
には2つの集計パスがあります。最初のパスでは、A1
がB1
に集計され、その結果がTop
に集計されます。2番目のパスでは、A1
がB2
に集計され、その結果がTop
に集計されます。
次の文は、myvar
という名前の変数を定義し、データ値1
をその詳細データ・レベル(A1
)に割り当て、その変数のaggmapを定義します。
DEFINE myvar INTEGER VARIABLE <geog> myvar(geog 'A1') = 1 DEFINE myvar.aggmap <geog> AGGMAP 'RELATION geog.geog'
myvar
を集計すると、次のエラー・メッセージが表示されます。
AGGREGATE myvar USING myvar.aggmap ERROR: (XSHIERCK01) One or more loops have been detected in your hierarchy GEOG.GEOG over GEOG. The loops include 2 items (UNDIRECTED: A1 and TOP).
A1
に対して作成された集計の複数パスが循環階層とみなされました。現在、MULTIPATHHIERオプションがNO
に設定されているためです。
誤ってこのような複数パスを作成してしまった場合、その階層で問題を解決します。
ただし、この場合は複数パスが計算上必要なために作成しています。したがって、これを解決するためには、MULTIPATHHIERをYES
に設定します。これにより、エラーが発生することなくAGGREGATEコマンドを実行できます。