Share via


Ancestor (MDX)

Función que devuelve el antecesor de un miembro especificado en un nivel especificado o a una distancia especificada del miembro.

Sintaxis

Level syntax
Ancestor(Member_Expression, Level_Expression)

Numeric syntax
Ancestor(Member_Expression, Distance)

Argumentos

  • Member_Expression
    Expresión MDX válida que devuelve un miembro.

  • Level_Expression
    Expresión MDX válida que devuelve un nivel.

  • Distance
    Expresión numérica válida que especifica la distancia desde el miembro especificado.

Comentarios

Con la función Ancestor, se proporciona la función con una expresión de miembro MDX y después se proporciona una expresión MDX de un nivel que sea un antecesor del miembro o una expresión numérica que represente el número de niveles por encima de ese miembro. Con esta información, la función Ancestors devuelve el miembro antecesor en ese nivel.

Nota

Para devolver un conjunto que contenga un miembro antecesor, en lugar de solo el miembro antecesor, use la función Ancestors (MDX).

Si se especifica una expresión de nivel, la función Ancestor devuelve el antecesor del miembro especificado en el nivel especificado. Si el miembro especificado no se encuentra dentro de la misma jerarquía que el nivel especificado, la función devuelve un error.

Si se especifica una distancia, la función Ancestor devuelve el antecesor del miembro especificado que es el número de pasos especificados hacia arriba en la jerarquía especificada por la expresión de miembro. Se puede especificar un miembro como miembro de una jerarquía de atributo, una jerarquía definida por el usuario o, en algunos casos, una jerarquía de elementos primarios y secundarios. El número 1 devuelve un elemento primario del miembro y el número 2 devuelve un elemento primario de segundo nivel (si existe) del miembro. El número 0 devuelve el propio miembro.

Nota

Esta forma de la función Ancestor se ha pensado para casos en los que el nivel del elemento primario es desconocido o no puede ser nombrado.

Ejemplos

El ejemplo siguiente utiliza una expresión de nivel y devuelve el valor Internet Sales Amount para cada State-Province de Australia, junto con su porcentaje del total de Internet Sales Amount para Australia.

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]

El ejemplo siguiente utiliza una expresión numérica y devuelve Internet Sales Amount para cada State-Province de Australia, junto con su porcentaje del total de Internet Sales Amount para todos los países.

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]

Vea también

Referencia