Vorfahre (MDX)

Eine Funktion, die den Vorfahren eines bestimmten Mitglieds auf einer bestimmten Ebene oder in einem bestimmten Abstand zum Mitglied zurückgibt.

Syntax

  
Level syntax  
Ancestor(Member_Expression, Level_Expression)  
  
Numeric syntax  
Ancestor(Member_Expression, Distance)  

Argumente

Member_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der ein Mitglied 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.

Bemerkungen

Mit der Vorfahrfunktion gibt man der Funktion einen MDX-Mitgliedsausdruck und dann entweder einen MDX-Ausdruck einer Ebene, die ein Vorfahre des Mitglieds ist, oder einen numerischen Ausdruck, der die Anzahl der Ebenen über diesem Mitglied darstellt. Mit dieser Information gibt die Ahnenfunktion das Vorfahrenmitglied auf dieser Ebene zurück.

Note

Um eine Menge mit dem Ahnenmitglied und nicht nur das Vorfahrenmitglied zurückzugeben, verwenden Sie die Funktion Ahnen (MDX).

Wenn ein Niveau-Ausdruck angegeben ist, gibt die Vorfahrfunktion den Vorfahren des angegebenen Mitglieds auf der angegebenen Ebene zurück. Befindet sich das angegebene Element nicht in derselben Hierarchie wie die angegebene Ebene, gibt die Funktion einen Fehler zurück.

Wenn ein Abstand angegeben ist, gibt die Ahnenfunktion den Vorfahren des angegebenen Elements zurück, also die Anzahl der Schritte, die oben in der Hierarchie des Mitgliedsausdrucks angegeben ist. Ein Mitglied kann als Mitglied einer Attributhierarchie, einer benutzerdefinierten Hierarchie oder in manchen Fällen einer Eltern-Kind-Hierarchie angegeben werden. Eine Zahl von 1 gibt den Elternteil eines Mitglieds zurück und eine Zahl von 2 den Großelternteil eines Mitglieds (falls es einen gibt). Eine Zahl 0 gibt das Mitglied selbst zurück.

Note

Verwenden Sie diese Form der Ahnenfunktion für Fälle, in denen die Ebene des Elternteils unbekannt ist oder nicht benannt werden kann.

Beispiele

Das folgende Beispiel verwendet einen Level-Ausdruck und liefert den Internetumsatzbetrag für jede State-Province in Australien sowie dessen Prozentsatz am gesamten Internetumsatzbetrag für Australien zurück.

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

Das folgende Beispiel verwendet einen numerischen Ausdruck und liefert den Internetumsatzbetrag für jeden State-Province in Australien sowie dessen Prozentsatz des gesamten Internetumsatzbetrags für alle Länder/Regionen zurück.

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