次の方法で共有


Ancestor (MDX)

更新 : 2006 年 7 月 17 日

指定メンバの先祖のうち、指定したレベル、またはメンバから指定された距離だけ離れた位置にある先祖を返す関数です。

構文

Level syntax
Ancestor(Member_Expression, Level_Expression)

Numeric syntax
Ancestor(Member_Expression, Distance)

引数

  • Member_Expression
    メンバを 1 つ返す有効な多次元式 (MDX) 式です。
  • Level_Expression
    レベルを返す有効な多次元式 (MDX) 式です。
  • Distance
    指定されたメンバからの距離を指定する有効な数値式です。

解説

Ancestor 関数を使用する際には、MDX メンバ式を指定してから、そのメンバの先祖のレベルを示す MDX 式か、そのメンバより何レベル上かを示す数値式のいずれかを指定します。Ancestors 関数は、この情報を使用して、そのレベルの先祖メンバを返します。

ms145616.note(ja-jp,SQL.90).gifメモ :
1 つの先祖メンバではなく先祖のセットを返すには、Ancestors (MDX) 関数を使用します。

レベル式が指定されている場合、Ancestor 関数は、指定されたレベルにある、指定されたメンバの先祖を返します。指定されたメンバが指定されたレベルと同じ階層内に存在しない場合、関数はエラーを返します。

距離が指定されている場合、Ancestor 関数は、メンバ式で指定された階層内で指定されたステップ数だけ上に位置する、指定されたメンバの先祖を返します。メンバには、属性階層、ユーザー定義階層、または場合によっては親子階層のメンバを指定できます。数値として 1 が指定された場合はメンバの親を返し、数値として 2 が指定された場合は はメンバの親より 1 つ上の先祖 (存在する場合) を返します。数値として 0 が指定された場合はそのメンバ自体を返します。

ms145616.note(ja-jp,SQL.90).gifメモ :
この形式の Ancestor 関数は、親メンバのレベルが不明な場合や、名前で指定できない場合に使用できます。

次の例では、レベル式を使用して、Australia の State-Province ごとの Internet Sales Amount と、Australia 全体における合計 Internet Sales Amount に対するその売上金額の割合を返しています。

WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] / 
   (
   [Measures].[Internet Sales Amount],  
      Ancestor 
         (
         [Customer].[Customer Geography].CurrentMember,
            [Customer].[Customer Geography].[Country]
         )
   ), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
   Descendants 
      (
        [Customer].[Customer Geography].[Country].&[Australia],
           [Customer].[Customer Geography].[State-Province], SELF 
      )
} ON 1
FROM [Adventure Works]

次の例では、数値式を使用して、Australia の State-Province ごとの Internet Sales Amount と、すべての国の Internet Sales Amount の合計に対する割合をそれぞれ返します。

WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] / 
   (
      [Measures].[Internet Sales Amount],
         Ancestor 
            ([Customer].[Customer Geography].CurrentMember, 2)
   ), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
   Descendants 
      (
         [Customer].[Customer Geography].[Country].&[Australia],
            [Customer].[Customer Geography].[State-Province], SELF 
      )
} ON 1
FROM [Adventure Works]

参照

関連項目

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

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