Ättlingar (MDX)

Returnerar mängden ättlingar till en medlem på en specificerad nivå eller avstånd, med valfritt inkluderande eller exkluderande efterkommande på andra nivåer.

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
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en medlem.

Set_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.

Level_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en nivå.

Avstånd
Ett giltigt numeriskt uttryck som specificerar avståndet från den angivna medlemmen.

Desc_Flag
Ett giltigt stränguttryck som specificerar en beskrivningsflagga som skiljer mellan möjliga mängder av ättlingar.

Remarks

Om en nivå anges returnerar funktionen Descendants en mängd som innehåller ättlingarna till den angivna medlemmen eller medlemmarna i den angivna mängden, på en angiven nivå, valfritt modifierad med en flagga specificerad i Desc_Flag.

Om Avstånd anges returnerar funktionen Descendants en mängd som innehåller ättlingarna till den specificerade medlemmen eller medlemmarna i den angivna mängden som är det angivna antalet nivåer bort i hierarkin för den angivna medlemmen, valfritt modifierat med en flagga specificerad i Desc_Flag. Vanligtvis använder du denna funktion med Avståndsargumentet för att hantera ojämna hierarkier. Om det specificerade avståndet är noll (0), returnerar funktionen en mängd som endast består av den specificerade medlemmen eller den specificerade mängden.

Om ett mängduttryck specificeras löses Descendants-funktionen individuellt för varje medlem i mängden, och mängden skapas igen. Med andra ord är syntaxen som används för Descendants-funktionen funktionellt ekvivalent med MDX Generera-funktionen .

Om ingen nivå eller avstånd anges bestäms standardvärdet för nivån som används av funktionen genom att anropa nivåfunktionen (<<Medlem>>. Level) för den specificerade medlemmen (om en medlem är specificerad) eller genom att anropa Level-funktionen för varje medlem i den specificerade mängden (om en mängd är specificerad). Om inget nivåuttryck, avstånd eller flaggor specificeras, fungerar funktionen som om följande syntax användes:

Descendants  
(  
Member_Expression ,  
Member_Expression.Level ,  
SELF_BEFORE_AFTER  
)  

Om en nivå anges och en beskrivningsflagga inte specificeras, fungerar funktionen som om följande syntax användes.

Descendants  
(  
Member_Expression ,  
Level_Expression,  
SELF  
)  

Genom att ändra värdet på beskrivningsflaggan kan du inkludera eller utesluta efterkommande på angiven nivå eller avstånd, barnen före eller efter den angivna nivån eller avståndet (fram till bladnoden), och lövbarnen oavsett angiven nivå eller avstånd. Följande tabell beskriver vilka flaggor som tillåts i Desc_Flag argumentet.

Flag Description
SELF Returnerar endast ättlingar från den angivna nivån eller på angiven avstånd. Funktionen inkluderar den specificerade medlemmen, om den angivna nivån är nivån för den angivna medlemmen.
AFTER Återlämnar efterkommande medlemmar från alla nivåer som är underordnade den angivna nivån eller avståndet.
FÖRE Returnerar ättlingar från alla nivåer mellan den angivna medlemmen och den angivna nivån, eller på det angivna avståndet. Den inkluderar den angivna medlemmen, men inkluderar inte medlemmar från den angivna nivån eller avståndet.
BEFORE_AND_AFTER Återlämnar ättlingar från alla nivåer som är underordnade nivån för den angivna medlemmen. Den inkluderar den angivna medlemmen, men inkluderar inte medlemmar från den angivna nivån eller på det angivna avståndet.
SELF_AND_AFTER Returnerar efterkommande medlemmar från den angivna nivån eller på det angivna avståndet och alla nivåer underordnade den angivna nivån, eller på det angivna avståndet.
SELF_AND_BEFORE Returnerar ättlingar från den angivna nivån eller på det angivna avståndet, och från alla nivåer mellan den angivna medlemmen och den angivna nivån, eller på det angivna avståndet, inklusive den angivna medlemmen.
SELF_BEFORE_AFTER Returnerar ättlingar från alla nivåer som är underordnade nivån för den angivna medlemmen och inkluderar den angivna medlemmen.
BLAD Returnerar bladättlingar mellan den angivna medlemmen och den angivna nivån, eller på det angivna avståndet.

Examples

Följande exempel returnerar den specificerade medlemmen (United States) och medlemmarna mellan den angivna medlemmen (United States) och medlemmarna på nivån före den angivna nivån (Stad). Exemplet returnerar själva den specificerade medlemmen (United States) och medlemmarna på State-Province-nivån (nivån före Stadsnivån). Detta exempel inkluderar kommenterade argument för att enkelt kunna testa andra argument för denna funktion.

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]   

Följande exempel visar det dagliga genomsnittet av måttet Measures.[Gross Profit Margin] , beräknat över dagarna i varje månad under räkenskapsåret 2003, från Adventure Works-kuben . Funktionen Descendants returnerar en uppsättning dagar bestämda från den aktuella medlemmen i [Date].[Fiscal] hierarkin.

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

Följande exempel använder ett nivåuttryck och returnerar internetförsäljningsbeloppet för varje State-Province i Australien, och returnerar procentandelen av det totala internetförsäljningsbeloppet för Australien för varje delstat och provins. Detta exempel använder Item-funktionen för att extrahera den första (och enda) tuplen från mängden som returneras av Ancestors-funktionen .

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]