上階 (MDX)
函式,傳回指定層級上指定成員的所有上階集合,或從成員的指定距離傳回。 使用 Analysis Services 時,傳回的集合一律會包含單一成員 - Analysis Services 不支援單一成員的多個父系。
語法
Level syntax
Ancestors(Member_Expression, Level_Expression)
Numeric syntax
Ancestors(Member_Expression, Distance)
引數
Member_Expression
傳回成員的有效多維度運算式 (MDX) 運算式。
Level_Expression
傳回層級的有效多維度運算式 (MDX) 運算式。
距離
有效的數值運算式,指定與指定成員的距離。
備註
使用上階函 式時,您會提供具有 MDX 成員運算式的函式,然後提供該成員上階層級的 MDX 運算式,或代表該成員上方層級數目的數值運算式。 利用這項資訊, 上階函 式會傳回該層級的成員集(也就是由一個成員組成的集合)。
注意
若要傳回上階成員,而不是上階集合,請使用 上階 函式。
如果指定了層級運算式, 則 Ancestors 函 式會傳回指定層級上指定成員的所有上階集合。 如果指定的成員不在與指定層級相同的階層內,函式會傳回錯誤。
如果指定距離, 則 Ancestors 函 式會傳回成員運算式所指定階層中所指定步驟數目的所有成員集合。 成員可以指定為屬性階層的成員、使用者定義的階層,或在某些情況下,指定父子式階層。 數位 1 會傳回父層級的成員集,而數位 2 會傳回祖父母層級的成員集合(如果有的話)。 數位 0 會傳回集合,只包含成員本身。
注意
針對父系層級未知或無法命名的情況,請使用這個形式的 上階函 式。
範例
下列範例會使用 上階函 式傳回成員、其父系和祖父母的 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]
下列範例會使用 上階函 式傳回成員、其父系和祖父母的 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]
下列範例會使用 上階函 式傳回屬性階層成員父系的 Internet Sales Amount 量值。 這個範例會使用數值運算式來指定所傳回的層級。 由於成員運算式中的成員是屬性階層的成員,因此其父系是 [All] 層級。
SELECT {
Ancestors(
[Product].[Product].[Mountain-100 Silver, 38],1
)
} ON 0,
[Measures].[Internet Sales Amount] ON 1
FROM [Adventure Works]