Ancestors (MDX)

更新日期: 2006 年 7 月 17 日

此函数返回指定成员在指定级别或距离处的所有祖先的集。使用 Microsoft SQL Server 2005 Analysis Services (SSAS) 时,返回的集将总是由单个成员组成,Analysis Services 不支持单个成员具有多个父成员。

语法

Level syntax
Ancestors(Member_Expression, Level_Expression)

Numeric syntax
Ancestors(Member_Expression, Distance)

参数

  • Member_Expression
    返回成员的有效多维表达式 (MDX)。
  • Level_Expression
    返回级别的有效多维表达式 (MDX)。
  • Distance
    指定与指定成员距离的有效数值表达式。

备注

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

ms145620.note(zh-cn,SQL.90).gif注意:
若要返回祖先成员而不是祖先集,请使用 Ancestor 函数。

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

如果指定了距离,则 Ancestors 函数返回层次结构中比成员表达式高出指定步骤数的所有成员的集。可以将成员指定为属性层次结构的成员或用户定义层次结构的成员,有时还可以指定为父子层次结构的成员。数值 1 返回父级别处的成员集,数值 2 返回祖父级别处(如果存在)的成员集。数值 0 返回仅包含成员本身的集。

ms145620.note(zh-cn,SQL.90).gif注意:
Ancestors 函数的这一形式适用于父成员级别未知或无法命名的情况。

示例

下面的示例使用 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)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 7 月 17 日

更改的内容:
  • 更新了语法和参数,以使表述更加清晰。
  • 添加了更新的示例。