Compartir a través de


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.

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

Comentarios

Con la función Antecesor , se proporciona la función con una expresión miembro MDX y, a continuación, se proporciona una expresión MDX de un nivel que es un antecesor del miembro o una expresión numérica que representa el número de niveles por encima de ese miembro. Con esta información, la función Antecesores devuelve el miembro antecesor en ese nivel.

Nota

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

Si se especifica una expresión de nivel, la función Antecesor 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 Antecesor devuelve el antecesor del miembro especificado que es el número de pasos especificados en la jerarquía especificada por la expresión 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

Use esta forma de la función Antecesor para los casos en los que se desconoce el nivel del elemento primario o no se puede nombrar.

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]  

En el ejemplo siguiente se usa una expresión numérica y se devuelve internet Sales Amount para cada State-Province en Australia y su porcentaje del importe total de ventas por Internet para todos los países o regiones.

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]  

Consulte también

Referencia de funciones MDX (MDX)