Share via


Ancestors (MDX)

指定したレベルまたはメンバーから指定した距離にある、指定したメンバーのすべての先祖のセットを返す関数。 Analysis Services では、返されるセットは常に 1 つのメンバーで構成されます。Analysis Services は、1 つのメンバーに対して複数の親をサポートしていません。

構文

  
Level syntax  
Ancestors(Member_Expression, Level_Expression)  
  
Numeric syntax  
Ancestors(Member_Expression, Distance)  

引数

Member_Expression
メンバーを 1 つ返す有効な多次元式 (MDX) 式です。

Level_Expression
レベルを返す有効な多次元式 (MDX) 式。

距離
指定したメンバーからの距離を指定する有効な数値式。

解説

Ancestors 関数では、関数に MDX メンバー式を指定し、そのメンバーの先祖であるレベルの MDX 式、またはそのメンバーの上のレベルの数を表す数値式のいずれかを指定します。 この情報を使用すると、 Ancestors 関数は、そのレベルでメンバーのセット (1 つのメンバーで構成されるセット) を返します。

Note

先祖セットではなく先祖メンバーを返すには、 先祖 関数を使用します。

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

距離が指定されている場合、 Ancestors 関数は、メンバー式で指定された階層内で指定されたステップの数であるすべてのメンバーのセットを返します。 メンバーは、属性階層、ユーザー定義階層、または場合によっては親子階層のメンバーとして指定できます。 1 の数値は親レベルのメンバーのセットを返し、2 の数は親レベルのメンバーのセットを返します (存在する場合)。 数値として 0 が指定された場合はそのメンバー自体のみを含むセットを返します。

Note

親のレベルが不明であるか、名前を付けられない場合は、この形式の 先祖 関数を使用します。

次の例では 、Ancestors 関数を使用して、メンバー、その親、および親の Internet Sales Amount メジャーを返します。 この例では、レベル式を使用して、返すレベルを指定します。 レベルは、メンバー式で指定されたメンバーと同じ階層にあります。

SELECT {  
    Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Category]),  
    Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Subcategory]),  
    Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Product])  
    } ON 0,  
[Measures].[Internet Sales Amount] ON 1  
FROM [Adventure Works]  

次の例では 、Ancestors 関数を使用して、メンバー、その親、および親の Internet Sales Amount メジャーを返します。 この例では、数値式を使用して、返されるレベルを指定します。 レベルは、メンバー式で指定されたメンバーと同じ階層にあります。

SELECT {  
   Ancestors(  
      [Product].[Product Categories].[Product].[Mountain-100 Silver, 38],2  
      ),  
   Ancestors(  
      [Product].[Product Categories].[Product].[Mountain-100 Silver, 38],1  
      ),  
   Ancestors(  
      [Product].[Product Categories].[Product].[Mountain-100 Silver, 38],0  
      )  
   } ON 0,  
[Measures].[Internet Sales Amount] ON 1  
FROM  [Adventure Works]  

次の例では 、Ancestors 関数を使用して、属性階層のメンバーの親の Internet Sales Amount メジャーを返します。 この例では、数値式を使用して、返されるレベルを指定します。 メンバー式のメンバーは属性階層のメンバーであるため、その親は [すべて] レベルです。

SELECT {  
   Ancestors(  
      [Product].[Product].[Mountain-100 Silver, 38],1  
      )  
   } ON 0,  
[Measures].[Internet Sales Amount] ON 1  
FROM [Adventure Works]  

参照

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