Ancestor (MDX)

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

语法

Level syntax
Ancestor(Member_Expression, Level_Expression)

Numeric syntax
Ancestor(Member_Expression, Distance)

参数

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

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

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

注释

使用 Ancestor 函数时,应为该函数提供 MDX 成员表达式,并提供该成员的祖先所在级别的 MDX 表达式或表示该成员之上有几个级别的数值表达式。借助此信息,Ancestors 函数将返回该级别处的祖先成员。

注意注意

若要返回包含祖先成员的集,而不只是祖先成员,请使用 Ancestors (MDX) 函数。

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

如果指定了距离,则 Ancestor 函数返回层次结构中比成员表达式高出指定步骤数的指定成员的祖先。可以将成员指定为属性层次结构的成员或用户定义层次结构的成员,有时还可以指定为父子层次结构的成员。数值 1 返回成员的父成员,数值 2 返回成员的祖父成员(如果存在)。数值 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]

请参阅

参考