SSAS - Можете ли вы выполнять вычисления MDX на основе уровня измерения атрибута? - PullRequest
2 голосов
/ 10 апреля 2019

Я пытаюсь сделать динамический расчет на основе измерения. Скажем, у меня есть три уровня измерения, но для получения среднего используется та же мера, что и у Field1 / Field2.

Тот же расчет будет применяться к каждому измерению; однако я использую разные атрибуты на разных уровнях для вычисления среднего.

Пример: Поле1 / Поле2 делится при использовании атрибутов уровня1, размер1 Поле1 / Поле2 делится при использовании атрибутов level2, измерение2 Поле1 / Поле2 делится при использовании атрибутов уровня 3, размерность 3

Это точно такой же расчет, но он должен быть динамичным при расчете на основе разных уровней: атрибуты level1, level2 и level3, потенциально все в разных измерениях.

Я довольно новичок в MDX, поэтому любая помощь в кодировании была бы признательна !!

Я еще ничего не пробовал, потому что мне нужен пример кода, чтобы понять, как написать выражение.

Я видел что-то подобное, но не знаю, в правильном ли это поле:

 WITH MEMBER [Measures].[Booking Window Value] AS
 [PNR Details].[Booking Window].CURRENTMEMBER.MEMBER_VALUE
 MEMBER [Measures].[Avg Booking Window Value] AS
 AVG([PNR Details].[Booking Window].[Booking Window].MEMBERS,[Measures]. 
 [Booking Window       Value])
 SELECT
 [Measures].[Avg Booking Window Value] ON COLUMNS
 FROM
 [SalesAnalysis]

Я ожидаю, что вывод будет выражением MDX, эквивалентным вычислению атрибутов на основе уровней измерений.

1 Ответ

1 голос
/ 11 апреля 2019

Вы можете проверить уровень следующим образом:

WITH MEMBER [Measures].[Booking Window Value] AS
CASE WHEN
    [MyDimension].[MyHierarchy].CURRENTMEMBER.Level
IS
    [MyDimension].[MyHierarchy].[Level1Name]
THEN
//Calculation for Level1
111
WHEN
    [MyDimension].[MyHierarchy].CURRENTMEMBER.Level
IS
    [MyDimension].[MyHierarchy].[Level2Name]
THEN
 //Calculation for Level2
222
ELSE

333

END
...