共用方式為


子系 (MDX)

傳回指定層級或距離的成員子系集合,選擇性地包含或排除其他層級中的子系。

語法

  
Member expression syntax using a level expression  
Descendants(Member_Expression [ , Level_Expression [ ,Desc_Flag ] ] )  
  
Member expression syntax using a numeric expression  
Descendants(Member_Expression [ , Distance [ ,Desc_Flag ] ] )  
  
Set expression syntax using a level expression  
Descendants(Set_Expression [ , Level_Expression [ ,Desc_Flag ] ] )  
  
Member expression syntax using a numeric expression  
Descendants(Set_Expression [ , Distance [ ,Desc_Flag ] ] )  
  

引數

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

Set_Expression
傳回集合的有效多維度運算式 (MDX) 運算式。

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

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

Desc_Flag
有效的字串運算式,指定可區分可能子系集合的描述旗標。

備註

如果指定了層級, 則 Descendants 函式會傳回集合,其中包含指定成員的子系或指定集合的成員,在指定的層級,選擇性地由Desc_Flag 中指定的 旗標修改。

如果 指定 Distance 則 Descendants 函式會傳回集合,其中包含指定成員的子系,或指定集合的成員,這些集合是指定成員階層中指定層級數目的指定數目,選擇性地由Desc_Flag 中指定的 旗標修改。 一般而言,您可以使用此函式搭配 Distance 引數來處理不完全的階層。 如果指定的距離為零 (0),則函式會傳回只包含指定成員或指定集合的集合。

如果指定了集合運算式, 則會個別解析集合的每個成員的 Descendants 函式,並再次建立集合。 換句話說,子系 函式所使用的 語法在功能上相當於 MDX Generate 函式。

如果未指定層級或距離,則函式所使用的層級預設值取決於呼叫 Level 函式 ( << Member >> .指定成員的層級(如果指定成員),或呼叫 指定集合之每個成員的 Level 函式(如果指定集合)。 如果未指定任何層級運算式、距離或旗標,則函式會執行,就像使用了下列語法一樣:

Descendants

(

Member_Expression ,

Member_Expression.Level ,

SELF_BEFORE_AFTER

)

如果指定了層級且未指定描述旗標,則函式會執行,就像使用了下列語法一樣。

Descendants

(

Member_Expression ,

Level_Expression,

SELF

)

藉由變更描述旗標的值,您可以包含或排除指定層級或距離的子系、指定層級或距離前後的子系(直到分葉節點為止),以及不論指定層級或距離為何的分葉子系。 下表描述 Desc_Flag 引數中 允許的旗標。

旗標 描述
SELF 只傳回指定層級或指定距離的子系成員。 如果指定的層級是指定成員的層級,則函式會包含指定的成員。
AFTER 傳回從下層到指定層級或距離的所有子代成員。
BEFORE 傳回指定成員與指定層級之間或指定距離之間所有層級的子代成員。 它包含指定的成員,但不包含來自指定層級或距離的成員。
BEFORE_AND_AFTER 傳回從下層到指定成員層級的所有子代成員。 它包含指定的成員,但不包含來自指定層級或指定距離的成員。
SELF_AND_AFTER 從指定層級或指定距離傳回子系成員,以及從屬於指定層級的所有層級,或指定距離。
SELF_AND_BEFORE 傳回指定層級或指定距離的子代成員,以及指定成員與指定層級之間的所有層級,或指定距離,包括指定的成員。
SELF_BEFORE_AFTER 傳回從下層到指定成員之層級的子代成員,並包含指定的成員。
傳回指定成員與指定層級之間的分葉子系成員,或指定距離。

範例

下列範例會傳回指定的成員(美國),以及指定成員(美國)與指定層級(City)、範例傳回指定成員本身(美國),以及州-省級成員(城市層級之前的層級)。 此範例包含批註引數,可讓您輕鬆地測試此函式的其他引數。

SELECT Descendants  
   ([Geography].[Geography].[Country].&[United States]  
      //, [Geography].[Geography].[Country]  
   , [Geography].[Geography].[City]  
      //, [Geography].[Geography].Levels (3)  
      //, SELF   
      //, AFTER  
      , BEFORE  
      // BEFORE_AND_AFTER  
      //, SELF_AND_AFTER  
      //, SELF_AND_BEFORE  
      //,SELF_BEFORE_AFTER  
      //,LEAVES   
   ) ON 0  
FROM [Adventure Works]   

下列範例會從 Adventure Works Cube 傳回在 2003 會計年度中每個月各天計算的量值每日平均值 Measures.[Gross Profit Margin] 。 Descendants 式會傳回一組從階層的目前成員決定的 [Date].[Fiscal] 天數。

WITH MEMBER Measures.[Avg Gross Profit Margin] AS Avg  
   (  
      Descendants( [Date].[Fiscal].CurrentMember,   
           [Date].[Fiscal].[Date]  
          ),   
        Measures.[Gross Profit Margin]  
   )  
SELECT  
   Measures.[Avg Gross Profit Margin] ON COLUMNS,  
   [Date].[Fiscal].[Month].Members ON ROWS  
FROM [Adventure Works]  
WHERE ([Date].[Fiscal Year].&[2003])  

下列範例會使用層級運算式,並傳回澳大利亞每個州省的網際網路銷售金額,並針對每個州省傳回澳大利亞的網際網路銷售總額百分比。 這個範例會使用 Item 函式,從上階函 式所 傳回的集合中擷取第一個 (且僅限) Tuple。

WITH MEMBER Measures.x AS   
   [Measures].[Internet Sales Amount] /   
   ( [Measures].[Internet Sales Amount],  
      Ancestors   
         ( [Customer].[Customer Geography].CurrentMember,   
           [Customer].[Customer Geography].[Country]  
         ).Item (0)  
   ), 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]  
  

另請參閱

MDX 函數參考 (MDX)