презаписване на контекстно измерение върху изчислен член (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
@Rick, благодаря за коментара ти. Фиксирано в отговор.   -  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