次の方法で共有


VisualTotals (MDX)

更新 : 2006 年 7 月 17 日

指定されたセットの子メンバの合計を動的に算出することによって生成したセットを返します。結果セット内で親メンバの名前に対してパターンを使用することも可能です。

構文

VisualTotals(Set_Expression[,Pattern])

引数

  • Set_Expression
    セットを返す有効な多次元式 (MDX) 式です。
  • Pattern
    親の名前を置き換える文字のアスタリスク (*) を格納した、セットの親メンバを表す有効な文字列式です。

解説

指定するセット式では、1 つのディメンション内の任意のレベルにあるメンバ (通常は先祖と子孫のリレーションシップを持つメンバ) のセットを指定できます。VisualTotals 関数は、指定されたセット内の子メンバの値の合計を算出します。ただし、結果の合計を計算する際にセットに存在しない子メンバは無視します。階層の順序で並べられたセットの表示部分の合計が算出されます。セット内のメンバの順序と階層の順序が一致しない場合、結果は表示部分の合計になりません。たとえば、VisualTotals (USA, WA, CA, Seattle) は WA を Seattle として返すのではなく、WA、CA、および Seattle の値を返してから、これらの値の合計を USA の表示部分の合計として算出します。このため、Seattle の売上は 2 回加算されることになります。

ms145527.note(ja-jp,SQL.90).gifメモ :
メジャーに関連していないディメンション メンバまたはメジャー グループの粒度よりも低いディメンション メンバに 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]

参照

関連項目

MDX 関数リファレンス (MDX)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • わかりやすくするために構文および引数を更新しました。
  • 更新した例を追加しました。