Каков наилучший способ перечислить элемент и всех его потомков в многомерных выражениях?

В базе данных OLAP, с которой я работаю, существует иерархия «Местоположение», состоящая из уровней «Компания», «Регион», «Область», «Участок», «Комната», «До». Для конкретной компании мне нужно написать некоторый MDX, в котором перечислены все регионы, районы и сайты (но не уровни ниже сайта). В настоящее время я достигаю этого с помощью следующего MDX

HIERARCHIZE({
[Location].[Test Company], 
Descendants([Location].[Test Company], [Location].[Region]), 
Descendants([Location].[Test Company], [Location].[Area]), 
Descendants([Location].[Test Company], [Location].[Site])
})

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


mdx
person Tim C    schedule 29.09.2008    source источник


Ответы (1)


Нужна команда DESCENDANTS. Помните об аналогии с «семейным древом», и вы увидите, что это перечислит потомков члена, насколько вы хотите.

Вы можете указать «расстояние» (в уровнях) от выбранного члена, 3 в вашем случае.

Есть несколько странных опций, которые вы можете указать с третьим аргументом, вы хотите SELF_AND_AFTER, см. http://msdn.microsoft.com/en-us/library/ms146075.aspx

РЕДАКТИРОВАТЬ - упс, как заметил santiiii, это должно быть SELF_AND_BEFORE

person Magnus Smith    schedule 29.09.2008