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é.
Remarques
Avec la fonction Ancestor , vous fournissez à la fonction une expression de membre MDX, puis une expression MDX d’un niveau qui est un ancêtre du membre ou une expression numérique qui représente le nombre de niveaux au-dessus de ce membre. Avec ces informations, la fonction Ancestors retourne le membre ancêtre à ce niveau.
Notes
Pour retourner un jeu contenant le membre ancêtre, au lieu du simple membre ancêtre, utilisez la fonction Ancestors (MDX).
Si une expression de niveau est spécifiée, 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 une distance est spécifiée, la fonction Ancestor retourne l’ancêtre du membre spécifié qui correspond au nombre d’étapes spécifiées dans la hiérarchie spécifiée par l’expression 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 ou ne peut pas être nommé.
Exemples
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 le montant des ventes Internet pour chaque State-Province en Australie et son pourcentage du montant total des ventes Internet pour tous les pays/régions.
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]