HIERHEIGHTファンクションは、指定されたレベルのノードの値を、階層ディメンションの現行のステータス・リストの最初の値として返します。
指定された階層ディメンションの値を、事前定義済のリレーションにレベル別に移入するには、HIERHEIGHTコマンドを使用します。
パラメータ
階層ディメンションの親子のセルフ・リレーション。詳細は、「parentrelリレーション」を参照してください。
階層ディメンションのレベルを表すINTEGER値。値1は階層ディメンションの最下位レベルを表します。
使用上の注意
階層ディメンションの制限
HIERHEIGHTファンクションは、常に階層ディメンションの単一の値を返します。HIERHEIGHTファンクションをコールする前に階層ディメンションを単一の値に制限しない場合、ディメンションの現行のステータス・リストの最初の値に対してHIERHEIGHTファンクションが実行されます。通常、HIERHEIGHTファンクションをコールする前に階層ディメンションを単一の値に制限するか、階層ディメンションの各値に対してHIERHEIGHTファンクションを実行するためにFOR文の後にHIERHEIGHTファンクションを使用します。
例
例7-109 単純なコマンドとしてのHIERHEIGHTの使用方法
アナリティック・ワークスペースに、geographyという名前の階層ディメンション、およびgeographyのStandard階層にあるgeography値のセルフ・リレーションであるg0.stanparentという名前のリレーションがあるとします。
DEFINE g0.newparent RELATION geography <geography> LD Parent-child when hierarchy of geography is 1
REPORT g0.stanparentのような文を発行すると、g0.stanparentの値が表示されます。
GEOGRAPHY G0.STANPARENT ---------------- ---------------- World NA Americas World Canada Americas Toronto Canada Montreal Canada Ottawa Canada ... ... USA Americas Boston USA LosAngeles USA ... ... Mexico Americas Mexicocity Mexico Argentina Americas BuenosAires Argentina Brazil Americas Saopaulo Brazil Colombia Americas Bogota Colombia Australia World East.Aust Australia Sydney East.Aust Madrid Spain Budapest Hungary Athens Greece Vienna Austria Melbourne East.Aust Central.aust Australia ... ... Perth West.Aust Bombay India Malaysia Asia Europe World France Europe Caen France Paris France
次のOLAP DML文を発行して、geographyを値Americasに制限します。
LIMIT geography TO 'Americas'
HIERHEIGHTファンクションを使用して階層の最下位レベル(レベル1)のAmericasのノードを検索するには、次のOLAP DML文を発行します。
REPORT HIERHEIGHT(g0.stanparent 1)
生成されるレポートは次のとおりです。
HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ NA
HIERHEIGHTファンクションを使用して階層の最上位レベル(レベル4)のAmericasのノードを検索するには、次のOLAP DML文を発行します。
REPORT HIERHEIGHT(g0.stanparent 4)
生成されるレポートは次のとおりです。
HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ World
HIERHEIGHTファンクションを使用して階層のレベル2および3のAmericasのノードを検索するには、次のOLAP DML文を発行します。
REPORT HIERHEIGHT(g0.stanparent 2) REPORT HIERHEIGHT(g0.stanparent 3)
生成されるレポートは次のとおりです。
HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ NA HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ Americas
各レベルの出力は、HIERHEIGHTコマンドを使用して作成したリレーションに作成された値との間に対応関係があることに注意してください。たとえば、geographyのStandard階層に対してgeog.stanhierrelという名前のリレーションを作成し、geographyをAmericasに制限したとします。geog.stanhierrelのレポートには、レベルごとに同じgeographyの値が表示されます。
LIMIT geography TO 'AMERICAS'
REPORT DOWN geography geog.stanhierrel
---------------------------GEOG.STANHIERREL--------------------
----------------------------GEOG.LVLDIM------------------------
GEOGRAPHY 1 2 3 4
---------------- ---------------- ---------------- ---------------- ------------
Americas NA NA Americas World
例7-110 FOR文の後のHIERHEIGHTの使用方法
アナリティック・ワークスペースに、findnodesという次のようなプログラムがあるとします。このプログラムは、geography値がすべてステータスにあるノードを検索します。
DEFINE FINDNODES PROGRAM PROGRAM VARIABLE level INTEGER FOR geography DO counter = 1 WHILE counter LE statlen(geog.lvldim) DO REPORT HIERHEIGHT(g0.stanparent level) level = level + 1 DOEND DOEND END
次のOLAP文を発行して、geographyをAmericasおよびAsiaに制限し、Standard階層のレベルごとにHIERHEIGHTファンクションをコールするとします。
LIMIT geography TO 'Americas', 'Asia' CALL findnodes
AmericasおよびAsiaのgeography値に関するfindnodesプログラムの出力は、次のとおりです。プログラムのレポートは、最初にAmericasの各レベルの値を表示します。次に、Asiaの各レベルの値がレポートされます。
HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ NA HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ NA HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ Americas HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ World HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ NA HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ NA HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ Asia HIERHEIGHT(G0.STANPARENT COUNTER) ------------------------------ World
各レベルの出力は、HIERHEIGHTコマンドを使用して作成したリレーションに作成された値との間に対応関係があることに注意してください。
LIMIT geography TO 'Americas' 'Asia'
REPORT DOWN geography geog.stanhierrel
---------------------------GEOG.STANHIERREL--------------------
----------------------------GEOG.LVLDIM------------------------
GEOGRAPHY 1 2 3 4
---------------- ---------------- ---------------- ---------------- ------------
Americas NA NA Americas World
Asia NA NA Asia World