Ancestor (MDX)

En funktion som returnerar förfadern till en specificerad medlem på en angiven nivå eller på ett angivet avstånd från medlemmen.

Syntax

  
Level syntax  
Ancestor(Member_Expression, Level_Expression)  
  
Numeric syntax  
Ancestor(Member_Expression, Distance)  

Arguments

Member_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en medlem.

Level_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en nivå.

Avstånd
Ett giltigt numeriskt uttryck som specificerar avståndet från den angivna medlemmen.

Remarks

Med Ancestor-funktionen ger du funktionen ett MDX-medlemsuttryck och sedan antingen ett MDX-uttryck på en nivå som är en förfader till medlemmen eller ett numeriskt uttryck som representerar antalet nivåer ovanför medlemmen. Med denna information returnerar förfädersfunktionen förfädersmedlemmen på den nivån.

Note

För att returnera en mängd som innehåller förfadermedlemmen, istället för bara förfadermedlemmen, använd funktionen Ancestors (MDX).

Om ett nivåuttryck specificeras, returnerar Ancestor-funktionen förfadern till den angivna medlemmen på den angivna nivån. Om den specificerade medlemmen inte befinner sig inom samma hierarki som den angivna nivån, returnerar funktionen ett fel.

Om ett avstånd anges returnerar Ancestor-funktionen förfadern för den angivna medlemmen som är antalet steg som anges uppåt i hierarkin som anges av medlemuttrycket. En medlem kan specificeras som medlem i en attributhierarki, en användardefinierad hierarki eller i vissa fall en förälder-barn-hierarki. Ett nummer 1 returnerar en medlems förälder och ett nummer 2 returnerar en medlems mor- eller farförälder (om en sådan finns). Ett tal 0 returnerar själva medlemmen.

Note

Använd denna form av Ancestor-funktionen för fall där förälderns nivå är okänd eller inte kan namnges.

Examples

Följande exempel använder ett nivåuttryck och returnerar internetförsäljningsbeloppet för varje State-Province i Australien och dess procentandel av det totala internetförsäljningsbeloppet för Australien.

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]  

Följande exempel använder ett numeriskt uttryck och returnerar Internetförsäljningsbeloppet för varje State-Province i Australien och dess procentandel av det totala Internetförsäljningsbeloppet för alla länder/regioner.

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]