Поделиться через


Ancestor (многомерные выражения)

Функция, возвращающая предок заданного элемента на заданном уровне или заданном расстоянии от элемента.

Синтаксис

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

Аргументы

Member_Expression
Допустимое многомерное выражение, возвращающее элемент.

Level_Expression
Допустимое многомерное выражение, возвращающее уровень.

Расстояние
Допустимое числовое выражение, указывающее расстояние от заданного элемента.

Замечания

При использовании функции Предка вы предоставляете функцию с выражением члена многомерных выражений, а затем предоставляет выражение многомерных выражений уровня, являющегося предком члена или числовым выражением, которое представляет число уровней выше этого элемента. С этой информацией функция "Предки" возвращает элемент предка на этом уровне.

Заметка

Чтобы вернуть набор, содержащий член-предка, вместо просто члена-предка, используйте функцию "Предки" (многомерные выражения).

Если задано выражение уровня, функция Предка возвращает предка указанного элемента на указанном уровне. Если заданный элемент не входит в ту же иерархию, что и заданный уровень, функция вернет ошибку.

Если задано расстояние, функция Предка возвращает предка указанного элемента, которое является числом шагов, указанных в иерархии, указанной выражением члена. Элемент может быть определен как элемент иерархии атрибута, пользовательской иерархии или при некоторых обстоятельствах иерархии типа «родители-потомки». Число 1 возвращает родительский объект элемента, а число 2 возвращает прародительский объект элемента (если такой существует). Число 0 вернет сам элемент.

Заметка

Используйте эту форму функции Предка для случаев, когда уровень родительского объекта неизвестен или не может быть назван.

Примеры

В следующем примере используется выражение уровня и возвращается Internet Sales Amount для каждой административно-территориальной единицы (State-Province) Австралии (Australia), возвращается также процентное соотношение относительно общего значения Internet Sales Amount в Австралии (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]  

В следующем примере используется числовое выражение и возвращается сумма продаж в Интернете для каждой провинции штата в Австралии и ее процент от общего объема продаж в Интернете для всех стран или регионов.

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]  

См. также

Справочник по функции многомерных выражений (многомерные выражения)