Nachkommen (MDX)

Gibt die Menge der Nachkommen eines Mitglieds auf einer bestimmten Ebene oder Entfernung zurück, wobei optional Nachkommen in anderen Ebenen einbezogen oder ausgeschlossen werden.

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

Argumente

Member_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der ein Mitglied zurückgibt.

Set_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der eine Menge zurückgibt.

Level_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der ein Level zurückgibt.

Abstand
Ein gültiger numerischer Ausdruck, der den Abstand zum angegebenen Element angibt.

Desc_Flag
Ein gültiger String-Ausdruck, der eine Beschreibungsflagge angibt und zwischen möglichen Mengen von Nachkommen unterscheidet.

Bemerkungen

Wenn ein Level angegeben ist, gibt die Nachfolgerfunktion eine Menge zurück, die die Nachkommen des angegebenen Mitglieds oder der Mitglieder der angegebenen Menge auf einer festgelegten Ebene enthält, optional durch eine in Desc_Flag angegebene Flagge modifiziert.

Wenn Distanz angegeben ist, gibt die Funktion Nachkommen eine Menge zurück, die die Nachkommen des angegebenen Mitglieds oder der Mitglieder der angegebenen Menge enthält, die die angegebene Anzahl von Ebenen entfernt in der Hierarchie des angegebenen Mitglieds sind, optional durch eine in Desc_Flag angegebene Flagge modifiziert. Typischerweise verwendet man diese Funktion zusammen mit dem Distanz-Argument, um mit unregelmäßigen Hierarchien umzugehen. Ist der angegebene Abstand null (0), gibt die Funktion eine Menge zurück, die nur aus dem angegebenen Element oder der angegebenen Menge besteht.

Wird ein Mengenausdruck angegeben, wird die Nachfolgefunktion für jedes Element der Menge einzeln aufgelöst, und die Menge wird erneut erstellt. Mit anderen Worten: Die für die Nachfolgefunktion verwendete Syntax ist funktional äquivalent zur MDX Generate-Funktion .

Wenn kein Level oder Abstand angegeben ist, wird der Standardwert für das von der Funktion verwendete Level durch den Aufruf der Level-Funktion (<<Element>>. Level) für das spezifizierte Element (falls ein Mitglied spezifiziert ist) oder durch Aufruf der Level-Funktion für jedes Element der angegebenen Menge (falls eine Menge angegeben ist). Wenn kein Level-Ausdruck, keine Entfernung oder Flags angegeben sind, funktioniert die Funktion so, als würde folgende Syntax verwendet:

Descendants  
(  
Member_Expression ,  
Member_Expression.Level ,  
SELF_BEFORE_AFTER  
)  

Wenn ein Level angegeben ist und kein Beschreibungsflag angegeben ist, funktioniert die Funktion so, als ob die folgende Syntax verwendet würde.

Descendants  
(  
Member_Expression ,  
Level_Expression,  
SELF  
)  

Durch die Änderung des Werts der Beschreibungsflagge können Sie Nachkommen auf der angegebenen Ebene oder Entfernung, die Kinder vor oder nach der angegebenen Ebene oder Entfernung (bis zum Blattknoten) und die Blattkinder unabhängig vom angegebenen Level oder der Entfernung einbeziehen oder ausschließen. Die folgende Tabelle beschreibt die erlaubten Flaggen im Desc_Flag-Argument .

Flag Beschreibung
SELF Gibt nur Nachkommen von der angegebenen Ebene oder in der angegebenen Entfernung zurück. Die Funktion umfasst das angegebene Element, wenn das angegebene Level das Level des angegebenen Elements ist.
NACH DEM Gibt Nachkommen von allen Ebenen zurück, die der angegebenen Ebene oder Entfernung untergeordnet sind.
VORHER Gibt Nachkommen von allen Ebenen zwischen dem angegebenen Mitglied und dem angegebenen Niveau oder in der angegebenen Entfernung zurück. Es umfasst das angegebene Mitglied, aber keine Mitglieder aus der angegebenen Stufe oder Entfernung.
BEFORE_AND_AFTER Gibt Nachkommen aus allen Ebenen zurück, die dem angegebenen Mitglied untergeordnet sind. Sie umfasst das angegebene Glied, aber keine Mitglieder von der angegebenen Ebene oder auf der angegebenen Entfernung.
SELF_AND_AFTER Gibt Nachkommen von der angegebenen Ebene oder auf der angegebenen Entfernung und allen Ebenen zurück, die der angegebenen Ebene untergeordnet sind, oder auf der angegebenen Entfernung.
SELF_AND_BEFORE Gibt Nachkommen von der angegebenen Ebene oder auf der angegebenen Distanz sowie von allen Ebenen zwischen dem angegebenen Mitglied und der angegebenen Ebene oder auf der angegebenen Distanz, einschließlich des angegebenen Mitglieds, zurück.
SELF_BEFORE_AFTER Gibt Nachkommen von allen Ebenen zurück, die der Ebene des angegebenen Mitglieds untergeordnet sind, und schließt das angegebene Mitglied ein.
BLÄTTER Gibt nachkommende Blattmitglieder zwischen dem angegebenen Element und der angegebenen Ebene oder in der angegebenen Entfernung zurück.

Beispiele

Das folgende Beispiel gibt das angegebene Mitglied (USA) sowie die Mitglieder zwischen dem angegebenen Mitglied (USA) und den Mitgliedern der Ebene vor der angegebenen Ebene (Stadt) zurück. Das Beispiel gibt das angegebene Mitglied selbst (USA) sowie die Mitglieder der State-Province Ebene (der Ebene vor der Stadtebene) zurück. Dieses Beispiel enthält kommentierte Argumente, damit Sie andere Argumente für diese Funktion einfach testen können.

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]   

Das folgende Beispiel liefert den Tagesdurchschnitt der Measures.[Gross Profit Margin] Messung, berechnet über die Tage jedes Monats im Geschäftsjahr 2003, aus dem Adventure Works-Würfel . Die Funktion Nachkommen liefert eine Anzahl von Tagen, die vom aktuellen Mitglied der Hierarchie [Date].[Fiscal] bestimmt sind.

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

Das folgende Beispiel verwendet einen Level-Ausdruck und gibt den Internetumsatzbetrag für jede State-Province in Australien zurück und gibt den Prozentsatz des gesamten Internetumsatzbetrags für Australien für jeden Bundesstaat und jede Provinz zurück. Dieses Beispiel verwendet die Item-Funktion, um das erste (und einzige) Tupel aus der Menge zu extrahieren, die von der Ancestors-Funktion zurückgegeben wird.

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]