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コマンドを実行できます。