Как лучше всего перечислить члена и всех его потомков в MDX?

StackOverflow https://stackoverflow.com/questions/147953

  •  02-07-2019
  •  | 
  •  

Вопрос

В базе данных 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 ограничены, мне было интересно, есть ли более простой способ сделать это с помощью одной команды, а не четырех?Есть ли менее подробный способ добиться этого, или мой пример — единственный реальный способ добиться этого?

Это было полезно?

Решение

DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top