Share via


Ancestor (MDX)

Cette fonction retourne l'ancêtre d'un membre spécifié à un niveau ou une distance spécifique du membre.

Syntaxe

Level syntax
Ancestor(Member_Expression, Level_Expression)

Numeric syntax
Ancestor(Member_Expression, Distance)

Arguments

  • Member_Expression
    Expression MDX (Multidimensional Expressions) valide qui retourne un membre.

  • Level_Expression
    Expression MDX (Multidimensional Expressions) valide qui retourne un niveau.

  • Distance
    Expression numérique valide qui spécifie la distance depuis le membre spécifié.

Notes

Lorsque vous utilisez la fonction Ancestor, vous lui fournissez une expression de membre MDX, puis soit l'expression MDX d'un niveau qui est l'ancêtre du membre, soit une expression numérique qui identifie le nombre de niveaux au-dessus de ce membre. À l'aide de ces informations, la fonction Ancestors retourne le membre ancêtre au niveau désigné.

Notes

Pour retourner un jeu contenant le membre ancêtre, plutôt que juste le membre ancêtre, utilisez la fonction Ancestors (MDX).

Si vous spécifiez une expression de niveau, la fonction Ancestor retourne l'ancêtre du membre spécifié au niveau spécifié. Si le membre spécifié n'apparaît pas dans la même hiérarchie en tant que niveau spécifié, la fonction retourne une erreur.

Si vous spécifiez une distance, la fonction Ancestor retourne l'ancêtre du membre spécifié constituant le nombre d'étapes spécifiés plus haut dans la hiérarchie précisée par l'expression de membre. Vous pouvez spécifier un membre en tant que membre d'une hiérarchie d'attribut, d'une hiérarchie définie par l'utilisateur ou, dans certains cas, d'une hiérarchie parent-enfant. Un nombre 1 retourne le parent d'un membre ; un nombre 2 retourne le grand-parent d'un membre (le cas échéant). Un nombre 0 retourne le membre lui-même.

Notes

Utilisez cette forme de la fonction Ancestor pour les cas où le niveau du parent est inconnu et ne peut pas être nommé.

Exemple

L'exemple suivant utilise une expression de niveau et retourne la mesure Internet Sales Amount (volume de vente Internet) pour chaque State-Province (état-Province) en Australie ; il dévoile également le pourcentage de volume de vente Internet total pour l'Australie.

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]

L'exemple suivant utilise une expression numérique et retourne la mesure Internet Sales Amount (volume de vente Internet) pour chaque State-Province (état-Province) en Australie ; il dévoile également le pourcentage de volume de vente Internet total pour tous les pays.

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]