Ancestors (MDX)
Cette fonction retourne le jeu de tous les ancêtres d'un membre spécifié à un niveau ou une distance spécifiée du membre. Dans Microsoft SQL Server Analysis Services, le jeu retourné consiste toujours en un membre unique ; Analysis Services ne prend pas en charge plusieurs parents pour un seul membre.
Syntaxe
Level syntax
Ancestors(Member_Expression, Level_Expression)
Numeric syntax
Ancestors(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 Ancestors, vous lui fournissez une expression de membre MDX, puis soit l'expression MDX d'un niveau qui est l'ancêtre de ce membre, soit une expression numérique qui identifie le nombre de niveaux au-dessus de ce membre. Avec ces informations, la fonction Ancestors retourne le jeu de membres (jeu composé d'un seul membre) à ce niveau.
[!REMARQUE]
Pour retourner un membre ancêtre, plutôt qu'un jeu d'ancêtres, utilisez la fonction Ancestor.
Si vous spécifiez une expression de niveau, la fonction Ancestors retourne le jeu de tous les ancêtres du membre spécifié au niveau spécifié. Si un 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 Ancestors retourne le jeu de tous les membres 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 jeu des membres au niveau parent ; un nombre 2 retourne le jeu des membres situés au niveau grand-parent (si ce niveau existe). Un nombre 0 retourne le jeu comprenant uniquement le membre lui-même.
[!REMARQUE]
Utilisez cette forme de la fonction Ancestors pour les cas où le niveau du parent est inconnu et ne peut pas être nommé.
Exemple
L'exemple ci-après utilise la fonction Ancestors pour retourner la mesure Internet Sales Amount (volume de vente Internet) d'un membre, de son parent et de son grand-parent. Cet exemple se base sur des expressions de niveau pour spécifier les niveaux à retourner. Les niveaux se trouvent dans la même hiérarchie que le membre spécifié dans l'expression de membre.
SELECT {
Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Category]),
Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Subcategory]),
Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Product])
} ON 0,
[Measures].[Internet Sales Amount] ON 1
FROM [Adventure Works]
L'exemple ci-après utilise la fonction Ancestors pour retourner la mesure Internet Sales Amount (volume de vente Internet) d'un membre, de son parent et de son grand-parent. Cet exemple se base sur des expressions numériques pour spécifier les niveaux retournés. Les niveaux se trouvent dans la même hiérarchie que le membre spécifié dans l'expression de membre.
SELECT {
Ancestors(
[Product].[Product Categories].[Product].[Mountain-100 Silver, 38],2
),
Ancestors(
[Product].[Product Categories].[Product].[Mountain-100 Silver, 38],1
),
Ancestors(
[Product].[Product Categories].[Product].[Mountain-100 Silver, 38],0
)
} ON 0,
[Measures].[Internet Sales Amount] ON 1
FROM [Adventure Works]
L'exemple ci-après utilise la fonction Ancestors pour retourner la mesure Internet Sales Amount (volume de vente Internet) du parent d'un membre d'une hiérarchie d'attribut. Cet exemple se base sur une expression numérique pour spécifier le niveau retourné. Du fait que le membre dans l'expression de membre correspond à un membre issu d'une hiérarchie d'attribut, son parent est le niveau [All].
SELECT {
Ancestors(
[Product].[Product].[Mountain-100 Silver, 38],1
)
} ON 0,
[Measures].[Internet Sales Amount] ON 1
FROM [Adventure Works]