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]
См. также
Справочник по функции многомерных выражений (многомерные выражения)