Как получить текущее значение строки в MDX вычисления WITH MEMBER? - PullRequest
0 голосов
/ 08 августа 2011

Я хотел бы рассчитать показатель на основе текущей строки.Проблема в том, что я не могу найти способ получить текущую строку в детали WITH MEMBER.

WITH MEMBER [Measures].[Test] AS AVG(
    NonEmptyCrossJoin(
                FILTER(DESCENDANTS([Exigences].[ENVGR], [Levier], SELF),
                       [Exigences].CurrentMember.Name = 'Chemicals'),
                DESCENDANTS([Organization].[Valeo].[Powertrain Systems], [entity], SELF)),
    [Measures].[ProgressLevel])

SELECT {[Measures].[ProgressLevel], [Measures].[Test]} ON COLUMNS,
DESCENDANTS([Exigences].[ENVGR].[ENVGR-01.001], [Levier], SELF) ON
ROWS FROM [Exigences]

Химические вещества в настоящее время жестко запрограммированы.Это для примера.Я бы хотел вместо 'Chemicals' иметь текущее значение в строках.

Итак, давайте предположим, что эти строки значений будут возвращать "Chemicals", "Pharmacy", "Test", мне бы хотелось [Measures]. [Test] расчет для изменения.

Может ли MDX сделать это?Если так, как я могу получить текущее значение.

Я пытался [Levier] .CurrentMember.Name, но я думаю, что он конфликтует с [Exigences] .CurrentMember.Name.

У любого естьидея?

Спасибо,

1 Ответ

2 голосов
/ 12 августа 2011

Это заняло немного усилий, но это преимущество, чтобы иметь хороший золотой значок. Мы используем функцию MDX Generate и именованные наборы (пример myCellSet & 2d в ссылка ):

Не уверен, что это сработает для вашего провайдера, но вы можете попробовать это:

WITH MEMBER [Measures].[Test] AS AVG(
 NonEmptyCrossJoin(
            Generate( {[Exigences].CurrentMember} as MyCellSet,
              FILTER(DESCENDANTS([Exigences].[ENVGR], [Levier], SELF),
                   [Exigences].CurrentMember.Name = MyCellSet.CurrentMember.Name)
            )
            ,
            DESCENDANTS([Organization].[Valeo].[Powertrain Systems], [entity], SELF)),
 [Measures].[ProgressLevel])
...