Freigeben über


Descendants (MDX)

Gibt eine Menge von nachfolgenden Werten eines Elements auf einer angegebenen Ebene oder in einem angegebenen Abstand zurück. Optional können nachfolgende Werte anderer Ebenen ein- 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 MDX-Ausdruck (Multidimensional Expressions), der ein Element zurückgibt.

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

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

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

Desc_Flag
Ein gültiger Zeichenfolgenausdruck, der ein Beschreibungs-Flag zur Unterscheidung möglicher Mengen von nachfolgenden Werten angibt.

Bemerkungen

Wenn eine Ebene angegeben wird, gibt die Descendants-Funktion einen Satz zurück, der die Nachfolger des angegebenen Elements oder die Member der angegebenen Menge auf einer angegebenen Ebene enthält, optional geändert durch ein in Desc_Flag angegebenes Flag.

Wenn Distance angegeben ist, gibt die Descendants-Funktion einen Satz zurück, der die Nachfolger des angegebenen Elements oder die Member des angegebenen Satzes enthält, die die angegebene Anzahl von Ebenen in der Hierarchie des angegebenen Elements sind, optional geändert durch ein in Desc_Flag angegebenes Flag. Das Distance-Argument dieser Funktion wird in der Regel bei unregelmäßigen Hierarchien verwendet. Wenn der angegebene Abstand null (0) ist, gibt die Funktion eine Menge zurück, die nur das angegebene Element oder die angegebene Menge enthält.

Wenn ein set-Ausdruck angegeben wird, wird die Descendants-Funktion für jeden Member des Satzes einzeln aufgelöst, und der Satz wird erneut erstellt. Anders ausgedrückt: Die syntax, die für die Descendants-Funktion verwendet wird, entspricht funktionell der MDX Generate-Funktion .

Wenn keine Ebene oder Entfernung angegeben wird, wird der Standardwert für die von der Funktion verwendete Ebene durch Aufrufen der Level-Funktion (<<Member>>. Ebene) für das angegebene Element (wenn ein Member angegeben ist) oder durch Aufrufen der Level-Funktion für jeden Member des angegebenen Satzes (wenn ein Satz angegeben wird). Wenn kein Ebenenausdruck, Abstand oder Flag angegeben ist, wird die Funktion ausgeführt, als wenn die folgende Syntax verwendet würde:

Descendants

(

Member_Expression ,

Member_Expression.Level ,

SELF_BEFORE_AFTER

)

Wenn eine Ebene und kein Beschreibungs-Flag angegeben ist, wird die Funktion ausgeführt, als wenn die folgende Syntax verwendet würde:

Descendants

(

Member_Expression ,

Level_Expression,

SELF

)

Durch Ändern des Wertes des Beschreibungs-Flags können Sie nachfolgende Elemente in der angegebenen Ebene bzw. dem angegebenen Abstand, untergeordnete Elemente vor und nach der angegebenen Ebene bzw. dem angegebenen Abstand (bis zum Blattknoten) sowie die untergeordneten Blattelemente unabhängig von der angegebenen Ebene bzw. dem angegebenen Abstand ein- oder ausschließen. In der folgenden Tabelle werden die im Argument Desc_Flag zulässigen Flags beschrieben.

Flag Beschreibung
SELF Gibt nur nachfolgende Elemente auf der angegebenen Ebene oder in dem angegebenen Abstand zurück. Die Funktion schließt das angegebene Element ein, wenn es sich bei der angegebenen Ebene um die Ebene des angegebenen Elements handelt.
AFTER Gibt nachfolgende Elemente aus allen Ebenen zurück, die der angegebenen Ebene oder dem angegebenen Abstand untergeordnet sind.
BEFORE Gibt nachfolgende Elemente aus allen Ebenen zwischen dem angegebenen Element und der angegebenen Ebene oder im angegebenen Abstand zurück. Sie enthält das angegebene Element, aber keine Member der angegebenen Ebene oder Entfernung.
BEFORE_AND_AFTER Gibt nachfolgende Elemente aus allen Ebenen zurück, die der Ebene des angegebenen Elements untergeordnet sind. Das angegebene Element wird eingeschlossen, jedoch nicht Elemente der angegebenen Ebene oder im angegebenen Abstand.
SELF_AND_AFTER Gibt nachfolgende Elemente aus der angegebenen Ebene oder im angegebenen Abstand sowie alle Ebenen, die der angegebenen Ebene oder dem angegebenen Abstand untergeordnet sind, zurück.
SELF_AND_BEFORE Gibt nachfolgende Elemente aus der angegebenen Ebene oder im angegebenen Abstand sowie aus allen Ebenen zwischen dem angegebenen Element und der angegebenen Ebene oder im angegebenen Abstand, einschließlich des angegebenen Elements, zurück.
SELF_BEFORE_AFTER Gibt nachfolgende Elemente aus allen Ebenen zurück, die der Ebene des angegebenen Elements untergeordnet sind, sowie das angegebene Element selbst.
LEAVES Gibt nachfolgende Blattelemente zwischen dem angegebenen Element und der angegebenen Ebene oder im angegebenen Abstand zurück.

Beispiele

Im folgenden Beispiel werden das angegebene Element (United States), die Elemente zwischen dem angegebenen Element (United States) und den Elementen der Ebene vor der angegebenen Ebene (City) zurückgegeben. Im Beispiel werden das angegebene Element selbst (United States) und die Elemente der State-Province-Ebene (die Ebene vor der City-Ebene) zurückgegeben. Die Argumente in diesem Beispiel sind kommentiert, um Ihnen das Testen dieser Funktion mit anderen Argumenten zu erleichtern.

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]   

Im folgenden Beispiel wird der tägliche Durchschnitt des Measures aus dem Measures.[Gross Profit Margin]Adventure Works-Cube zurückgegeben, der über die Tage jedes Monats im Geschäftsjahr 2003 berechnet wird. Die Funktion Descendants gibt einen Satz von Tagen zurück, der vom aktuellen Element der [Date].[Fiscal] Hierarchie bestimmt wird.

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 Ebenenausdruck und gibt den Internet sales Amount für jede State-Province in Australien und den Prozentsatz des gesamten Internetumsatzes für Australien für jede Bundesstaatsprovinz zurück. In diesem Beispiel wird die Item-Funktion verwendet, um das erste (und einzige) Tupel aus dem Satz zu extrahieren, der 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]  
  

Weitere Informationen

MDX-Funktionsreferenz (MDX)