共用方式為


Ancestor (MDX)

會傳回指定層級上指定之成員的上階或離該成員指定距離之上階的函數。

語法

Level syntax
Ancestor(Member_Expression, Level_Expression)

Numeric syntax
Ancestor(Member_Expression, Distance)

引數

  • Member_Expression
    傳回成員的有效多維度運算式 (MDX) 運算式。

  • Level_Expression
    傳回層級的有效多維度運算式 (MDX) 運算式。

  • Distance
    有效的數值運算式,會指定與指定成員間的距離。

備註

使用 Ancestor 函數時,您可以提供 MDX 成員運算式給函數,然後提供代表該成員之上階的 MDX 層級運算式,或代表該成員之上方層級數目的數值運算式。Ancestors 函數利用此資訊,會傳回該層級的上階成員。

[!附註]

若要傳回上階集合,而非上階成員,請使用 Ancestors (MDX) 函數。

如果指定了層級運算式,Ancestor 函數會傳回指定層級上指定成員的上階。如果指定成員不是位在指定層級的相同階層中,函數會傳回錯誤。

如果指定距離,Ancestor 函數會傳回階層中由成員運算式所指定之上方層級數目的指定成員的上階。成員可以指定為屬性階層或使用者自訂階層的成員,或在某些狀況下指定為父子式階層的成員。數字 1 會傳回成員的父系,數字 2 會傳回成員的祖系 (如果存在的話)。數字 0 會傳回成員本身。

[!附註]

請在父層級未知或無法命名的情況下,使用這個 Ancestor 函數形式。

範例

下列範例使用層級運算式,並且會傳回 Australia 每個 State-Province 的 Internet Sales Amount,及其佔 Australia 之 Internet Sales Amount 總計的百分比。

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]

下列範例使用數值運算式,並且會傳回 Australia 每個 State-Province 的 Internet Sales Amount,及其佔所有國家 (地區) Internet Sales Amount 總計的百分比。

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]

請參閱

參考