Ancestors (MDX)
此函数返回指定成员在指定级别或距离处的所有祖先的集。 使用 Microsoft SQL Server Analysis Services 时,返回的集将总是由单个成员组成,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 函数将返回该级别处的成员集,它是由一个成员组成的集。
备注
若要返回祖先成员而不是祖先集,请使用 Ancestor 函数。
如果指定了级别表达式,则 Ancestors 函数返回指定成员在指定级别处的所有祖先的集。 如果指定成员与指定级别不在同一个层次结构中,该函数将返回错误。
如果指定了距离,则 Ancestors 函数返回层次结构中比成员表达式高出指定步骤数的所有成员的集。 可以将成员指定为属性层次结构的成员或用户定义层次结构的成员,有时还可以指定为父子层次结构的成员。 数值 1 返回父级别处的成员集,数值 2 返回祖父级别处(如果存在)的成员集。 数值 0 返回仅包含成员本身的集。
备注
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]