次の方法で共有


Ancestor (MDX)

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

構文

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 関数は、この情報を使用して、そのレベルの先祖メンバーを返します。

注意

先祖メンバーのみではなく、先祖メンバーを含んでいるセットを返すには、Ancestors (MDX) 関数を使用します。

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

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

注意

この形式の 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]