祖先(MDX)

一个返回指定成员在指定层级或距离该成员所有祖先集合的函数。 在分析服务中,返回的集合始终由单个成员组成——分析服务不支持单个成员的多个父节点。

Syntax

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

Arguments

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

Level_Expression
一个有效的多维表达式(MDX)表达式,返回一个层级。

距离
一个有效的数值表达式,用来指定距离指定成员的距离。

Remarks

使用 祖先 函数时,你先给函数一个MDX成员表达式,然后给出一个MDX表达式,表示该成员的祖先级别,或者表示该成员以上层数的数值表达式。 有了这些信息, 祖先 函数返回了该层级的成员集合(该集合由一个成员组成)。

注释

要返回祖先成员,而非祖先集合,可以使用 祖先 函数。

如果指定了层级表达式, 祖先 函数返回指定成员在指定层级的所有祖先集合。 如果指定的成员不处于指定层级的同一层级内,函数会返回错误。

如果指定了距离, 祖先 函数返回了所有成员的集合,这些成员的步骤数是成员表达式指定的层级结构中指定的。 成员可以被指定为属性层级、用户定义层级,或在某些情况下的父子层级的成员。 数字为1返回父级成员集合,数字为2返回祖父级成员集合(如果存在)。 数值为0则返回只包含成员自身的集合。

注释

在父级未知或无法命名的情况下,使用这种形式的 祖先 函数。

示例

以下示例使用 祖先 功能返回成员、其父和祖父母的互联网销售金额测量。 本例使用电平表达式来指定要返回的电平。 这些层级与成员表达式中指定的成员处于同一层级结构中。

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]  

以下示例使用 祖先 功能返回成员、其父和祖父母的互联网销售金额测量。 本例使用数值表达式来指定返回的层级。 这些层级与成员表达式中指定的成员处于同一层级结构中。

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]  

以下示例使用 祖先 函数返回属性层级成员父节点的互联网销售金额度量。 本例使用数值表达式来指定返回的电平。 由于成员表达式中的成员属于属性层级,其父级是[All]级别。

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