перезаписать измерение контекста в вычисляемом элементе (SSAS)

Предположим простой сценарий: таблица фактов F с двумя измерениями D1 и D2.

F   D1   D2
10   A   B
15   B   C

В этом сценарии я определяю новый вычисляемый элемент C1, используя выражение, близкое к этому:

with member measures.C1 as
sum(
   descendants( [D1].[Ds].currentMember, , leaves ),
   [myMeasure]
)
select 
 measures.C1 on 0,
[D2].[Ds].AllMembers on 1
   from [MyCube]

Как я могу изменить C1, чтобы все время включать в выражение все члены D2?

Я получаю следующие результаты:

C1  D2
10  B
15  C

и я ищу это:

C1  D2
35  B
35  C

(конечно, это упрощение реальной проблемы, пожалуйста, не пытайтесь исправить выражение C1, только добавьте код для получения ожидаемых результатов, я пробовал:

sum(
   { descendants( [D1].[Ds].currentMember, , leaves ),
     [D2].[Ds].AllMembers },
   [myMeasure]

неудачно)

С уважением.


person dani herrera    schedule 08.05.2012    source источник
comment
Я не уверен, что понимаю ваш желаемый результат. Можете ли вы объяснить, почему 35 B будет показано дважды?   -  person Rick    schedule 09.05.2012
comment
@ Рик, спасибо за твой комментарий. Исправил в ответ.   -  person dani herrera    schedule 09.05.2012


Ответы (1)


Для этого конкретного примера измените оператор участника следующим образом.

WITH MEMBER [Measures].[C1] AS
SUM([D1].[Ds].[All], [myMeasure])

Это дает вам все в этом измерении для вашей меры. Затем это значение следует повторить для каждого атрибута в измерении D2.

Судя по заголовку вопроса и части вашего текста, это всего лишь небольшой пример. Возможно, вам нужно изучить область. Он довольно мощный, и с ним можно делать кое-какие полезные вещи.

person Rick    schedule 09.05.2012