VISUALTOTALS (MDX)
階層順にメンバのセットを指定すると、その表示部分の合計と共にセットを返します。表示部分の合計では、任意の上位レベルのメンバの実際の値は、クエリに含まれている子の値の合計値に置き換えられます。
返りタイプ
構文および詳細
VISUALTOTALS(set_expression, optional_parent_name_pattern)
以下は、この指定の説明です。
-
set_expression は、メンバのセットに対して評価される式です。このセットには、同じディメンジョン内の異なるレベルのメンバを含めることができますが、それらのメンバは階層順になっている必要があります。
-
optional_parent_name_pattern は、親名が使用される場所にアスタリスク (*) がある文字列です。例えば、"SUB *" や "* (SUBTOTAL)" などです。
これを省略すると、親の名前には余分な文字列が追加されません。
例
まず参考のために、この例で使用される階層を以下の図に示します。
以下のクエリについて考えてみます。ここでは VISUALTOTALS を使用していません。
WITH SET demo AS 'HIERARCHIZE({homed.32006,homed.34577,homed.CYPRESS,homed.PINE,homed.SPRUCE})'
SELECT MEASURES.[%COUNT] ON 0, demo ON 1 FROM patients
Patient Count
1 32006 2,272
2 Spruce 1,117
3 34577 3,399
4 Cypress 1,150
5 Pine 1,138
このクエリは、リストされた郵便番号および市町村ごとの患者数を示しています。郵便番号ごとの患者数は、その郵便番号の患者数の合計です。
ここで、以下のバリエーションについて考えてみます。ここでは、VISUALTOTALS を使用しています。
WITH SET demo AS 'HIERARCHIZE({homed.32006,homed.34577,homed.CYPRESS,homed.PINE,homed.SPRUCE})'
SELECT MEASURES.[%COUNT] ON 0, VISUALTOTALS(demo) ON 1 FROM patients
Patient Count
1 32006 1,117
2 Spruce 1,117
3 34577 2,288
4 Cypress 1,150
5 Pine 1,138
この場合、すべての上位レベルのメンバ (郵便番号) の患者数には、クエリに含まれている子のみが反映されています。例えば、郵便番号 34577 の患者数は、Pine と Cypress の各市町村の患者数の合計です。
別のバリエーションとして、以下のクエリについて考えてみます。これは、上記のバリエーションに似ていますが、VISUALTOTALS の 2 番目の引数も使用している点が異なります。
VISUALTOTALS */WITH SET demo AS 'HIERARCHIZE({homed.32006,homed.34577,homed.CYPRESS,homed.PINE,homed.SPRUCE})'
SELECT MEASURES.[%COUNT] ON 0, VISUALTOTALS(demo,"* (included cities)") ON 1 FROM patients
Patient Count
1 32006 (included cities) 1,117
2 Spruce 1,117
3 34577 (included cities) 2,288
4 Cypress 1,150
5 Pine 1,138
表示される値は上記のクエリと同じですが、それぞれの郵便番号は、末尾に文字列 (included cities) が付いて表示されます。