Ancestor (MDX)

此函数返回指定成员在指定级别或距离处的祖先。

语法

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

参数

Member_Expression
返回成员的有效多维表达式 (MDX)。

Level_Expression
返回级别的有效多维表达式 (MDX)。

距离
指定与指定成员距离的有效数值表达式。

备注

使用 上级 函数,可为函数提供 MDX 成员表达式,然后提供作为成员上级级别的 MDX 表达式或表示该成员之上的级别数的数值表达式。 有了此信息, Ancestors 函数将返回该级别的上级成员。

注意

若要返回包含上级成员的集,而不是仅使用上级成员,请使用 上级 (MDX) 函数。

如果指定了级别表达式, 则 Ancestor 函数将返回指定级别的指定成员的上级。 如果指定成员与指定级别不在同一个层次结构中,该函数将返回错误。

如果指定了距离, 则 Ancestor 函数返回指定成员的上级,即成员表达式指定的层次结构中指定的步骤数。 可以将成员指定为属性层次结构的成员或用户定义层次结构的成员,有时还可以指定为父子层次结构的成员。 数值 1 返回成员的父成员,数值 2 返回成员的祖父成员(如果存在)。 数值 0 返回成员本身。

注意

对于父级级别未知或无法命名的情况,请使用这种形式的 上级 函数。

示例

下面的示例使用一个级别表达式,并返回 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]  

以下示例使用数值表达式并返回澳大利亚每个State-Province的 Internet Sales Amount,以及其占所有国家/地区的 Internet 销售总额的百分比。

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)