VisualTotals (MDX)
指定されたセットの子メンバーの合計を動的に算出することによって生成したセットを返します。結果セット内で親メンバーの名前に対してパターンを使用することも可能です。
構文
VisualTotals(Set_Expression[,Pattern])
引数
Set_Expression
セットを返す有効な多次元式 (MDX) 式です。Pattern
親の名前を置き換える文字のアスタリスク (*) を格納した、セットの親メンバーを表す有効な文字列式です。
説明
指定するセット式では、1 つのディメンション内の任意のレベルにあるメンバー (通常は先祖と子孫のリレーションシップを持つメンバー) のセットを指定できます。 VisualTotals 関数は、指定されたセット内の子メンバーの値の合計を算出します。ただし、結果の合計を計算する際にセットに存在しない子メンバーは無視します。 階層の順序で並べられたセットの表示部分の合計が算出されます。 セット内のメンバーの順序と階層の順序が一致しない場合、結果は表示部分の合計になりません。 たとえば、VisualTotals (USA, WA, CA, Seattle) は WA を Seattle として返すのではなく、WA、CA、および Seattle の値を返してから、これらの値の合計を USA の表示部分の合計として算出します。このため、Seattle の売上は 2 回加算されることになります。
注意
メジャーに関連していないディメンション メンバーまたはメジャー グループの粒度よりも低いディメンション メンバーに VisualTotals 関数を適用すると、値が NULL に置き換えられます。
Pattern (省略可能) では、合計ラベルの書式を指定します。 Pattern では、親メンバー名を置き換える文字としてアスタリスク (*) を使用する必要があります。文字列内の残りのテキストは、親の名前と連結されて結果に表示されます。 リテラルとしてのアスタリスクを表示するには、2 つのアスタリスク (**) を入力します。
使用例
次の例では、指定された 1 つの子孫 (7 月) に基づいて、2001 年の第 3 四半期の表示部分の合計を返しています。
SELECT VisualTotals
({[Date].[Calendar].[Calendar Quarter].&[2001]&[3]
,[Date].[Calendar].[Month].&[2001]&[7]}) ON 0
FROM [Adventure Works]
次の例では、Product ディメンション内の Category 属性階層の [All] メンバーを、4 つの子メンバーのうちの 2 つと共に返しています。 Internet Sales Amount メジャーについて [All] メンバーに対して返される合計は、Accessories メンバーと Clothing メンバーのみの合計になります。 また、[All Products] 列のラベルを指定するために、Pattern 引数が使用されています。
SELECT
VisualTotals
({[Product].[Category].[All Products]
,[Product].[Category].[Accessories]
,[Product].[Category].[Clothing]}
, '* - Visual Total'
) ON Columns
, [Measures].[Internet Sales Amount] ON Rows
FROM [Adventure Works]