Potomci (MDX)

Vrací množinu potomků člena na určené úrovni nebo vzdálenosti, volitelně včetně nebo vyloučení potomků v jiných úrovních.

Syntax

  
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 ] ] )  
  

Arguments

Member_Expression
Platný výraz Multidimensional Expressions (MDX), který vrací člen.

Nastavit_výraz
Platný výraz Multidimensional Expressions (MDX), který vrací množinu.

Level_Expression
Platný výraz Multidimensional Expressions (MDX), který vrací úroveň.

Vzdálenost
Platný číselný výraz, který určuje vzdálenost od určeného prvku.

Desc_Flag
Platný řetězcový výraz specifikující popisný příznak rozlišující možné množiny potomků.

Remarks

Pokud je úroveň specifikována, funkce Descendants vrací množinu obsahující potomky určeného člena nebo členy této množiny na určené úrovni, volitelně upravenou příznakem specifikovaným v Desc_Flag.

Pokud je specifikována vzdálenost , funkce Descendants vrátí množinu obsahující potomky určeného člena nebo členy této množiny, kteří jsou vzdáleni o určitý počet úrovní v hierarchii daného člena, volitelně upravené příznakem specifikovaným v Desc_Flag. Obvykle se tato funkce používá s argumentem Distance k řešení roztrhaných hierarchií. Pokud je zadaná vzdálenost nula (0), funkce vrátí množinu složenou pouze ze specifikovaného člena nebo dané množiny.

Pokud je specifikován výraz množiny, funkce Descendants se vyřeší jednotlivě pro každý člen množiny a množina se znovu vytvoří. Jinými slovy, syntaxe použitá pro funkci Descendants je funkčně ekvivalentní funkci MDX Gener.

Pokud není určena žádná úroveň nebo vzdálenost, výchozí hodnota úrovně používané funkcí je určena voláním funkce Level (<<Member>>. Level) pro specifikovaného člena (pokud je určitý člen) nebo voláním funkce Level pro každý člen určené množiny (pokud je množina specifikována). Pokud nejsou specifikovány žádné úrovně, vzdálenost ani příznaky, funkce funguje, jako by byla použita následující syntaxe:

Descendants  
(  
Member_Expression ,  
Member_Expression.Level ,  
SELF_BEFORE_AFTER  
)  

Pokud je určena úroveň a popisný příznak není určen, funkce funguje, jako by byla použita následující syntaxe.

Descendants  
(  
Member_Expression ,  
Level_Expression,  
SELF  
)  

Změnou hodnoty popisu příznaku můžete zahrnout nebo vyloučit potomky na určené úrovni nebo vzdálenosti, potomky před nebo po určené úrovni či vzdálenosti (až do listového uzlu) a potomky listů bez ohledu na určenou úroveň nebo vzdálenost. Následující tabulka popisuje příznaky povolené v argumentu Desc_Flag .

Flag Description
SELF Vrací pouze potomky členů z dané úrovně nebo na určené vzdálenosti. Funkce zahrnuje specifikovaného prvku, pokud je určená úroveň úroveň určeného prvku.
AFTER Vrací potomky členů ze všech úrovní podřízených určené úrovni nebo vzdálenosti.
PŘED Vrací potomky členů ze všech úrovní mezi daným členem a danou úrovní, tedy ve stanovené vzdálenosti. Zahrnuje určený člen, ale nezahrnuje členy z dané úrovně nebo vzdálenosti.
BEFORE_AND_AFTER Vrací potomky členů ze všech úrovní podřízených úrovni určeného člena. Zahrnuje specifikovaného člena, ale nezahrnuje členy z dané úrovně ani z určené vzdálenosti.
SELF_AND_AFTER Vrací potomky členů z určené úrovně nebo na určené vzdálenosti a všechny úrovně podřízené této úrovni, nebo na určené vzdálenosti.
SELF_AND_BEFORE Vrací potomky členů z určené úrovně nebo na určené vzdálenosti a ze všech úrovní mezi určeným členem a danou úrovní, nebo na určené vzdálenosti, včetně určeného členu.
SELF_BEFORE_AFTER Vrací potomky členů ze všech úrovní podřízených úrovni určeného člena a zahrnuje i určeného člena.
LISTY Vrací potomky listů mezi určeným členem a určenou úrovní, tedy ve stanovené vzdálenosti.

Examples

Následující příklad vrací určeného člena (USA) a členy mezi určeným členem (USA) a členy úrovně před určenou úrovní (City). Příklad vrací samotného určeného člena (USA) a členů State-Province úrovně (úroveň před úrovní City). Tento příklad obsahuje komentované argumenty, které vám umožní snadno otestovat jiné argumenty pro tuto funkci.

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]   

Následující příklad vrací denní průměr Measures.[Gross Profit Margin] míry, vypočítán napříč dnmi každého měsíce fiskálního roku 2003, z krychle Adventure Works . Funkce Descendants vrací sadu dnů určenou od aktuálního člena hierarchie [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])  

Následující příklad používá rovinový výraz a vrací částku internetového prodeje pro každý State-Province v Austrálii a vrací procento z celkového prodeje v Austrálii pro každý stát-provincii. Tento příklad používá funkci Item k extrakci první (a jediné) n-tice z množiny, kterou funkce Ancestors vrátí.

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]