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