一個在指定層級或距離某個成員處回傳祖先的函數。
Syntax
Level syntax
Ancestor(Member_Expression, Level_Expression)
Numeric syntax
Ancestor(Member_Expression, Distance)
論點
Member_Expression
一個有效的多維表達式(MDX)表達式,回傳成員。
Level_Expression
一個有效的多維表達式(MDX)表達式,能回傳一個層級。
距
一個有效的數值表達式,用來指定與該成員的距離。
備註
使用 Ancestor 函數時,你先提供 MDX 成員表達式,然後提供成員祖先層級的 MDX 表達式,或是代表該成員以上層級數量的數字表達式。 有了這些資訊, 祖先 函數會回傳該層級的祖先成員。
Note
若要回傳包含祖先成員的集合,而非僅返回祖先成員,請使用 祖先(MDX) 函式。
若指定了層級表達式, 祖先 函式會回傳指定成員在指定層級的祖先。 若指定的成員不在指定層級的同一階層內,函式會回傳錯誤。
若指定距離, 祖先 函數會回傳指定成員的祖先,即成員表達式所指定的階層中向上的步數。 成員可指定為屬性階層、使用者定義階層,或在某些情況下的父子階層成員。 數字為 1 會回傳成員的父種,數字 2 則會回傳成員的祖父母(若存在)。 數值為 0 則返回該成員本身。
Note
在父層級未知或無法命名的情況下,使用這種形式的 祖先 函數。
Examples
以下範例使用水準表達式,回傳澳洲每個 State-Province 的網路銷售金額及其佔澳洲總網路銷售額的百分比。
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
(
[Customer].[Customer Geography].CurrentMember,
[Customer].[Customer Geography].[Country]
)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]
以下範例使用數值表達式,回傳澳洲每個 State-Province 的網路銷售金額及其佔所有國家/地區總網路銷售額的百分比。
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
([Customer].[Customer Geography].CurrentMember, 2)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]