2015-12-17 4 views
0

В кубе есть измерение элемента. Элемент, отличный от номера элемента, может также иметь другие (числовые) атрибуты.Создание пользовательской иерархии MDX для измерения

D_Item

  • Атрибут [attrib1]
    • element1 [70]
    • element2 [40]
    • element3 [1]
    • element4 [2]
  • Другие иерархии

Моя цель - использовать iif или case ... когда ... для создания новой иерархии (или набора?), Которую я мог бы использовать для нарезки. Почему бы не сохранить его в кубе? Потому что это очень одиночный случай использования и для использования в отчете ...

Моей желаемая структура выглядит следующим образом:

WITH MyNewHierarchy AS 
CASE 
WHEN [D_Item].[attrib].Value = 70 then 'Company 1' 
WHEN [D_Item].[attrib].Value = 40 then 'Company 2' 
WHEN [D_Item].[attrib].Value = 1 OR [D_Item].[attrib].Value = 2 then 'Company 3' 
END 

SELECT Measure ON COLUMNS, 
[D_Date].[Month].Chilren on ROWS 

FROM CUBE 

WHERE 

[MyNewHierarchy].[Company 3] 

Это, вероятно, довольно реляционный подход, но я надеюсь, что для достижения этого результата один день.

+0

вы используете SSRS? – whytheq

+0

Услуги по анализу Ms – rasenkantenstein

+0

помогли ли мои ответы? – whytheq

ответ

1

Я не знаю, можете ли вы создать совершенно новую иерархию на лету.

Я знаю, что вы можете создавать пользовательские элементы и «размещать» их в неиспользуемой существующей иерархии. Вы можете сделать это с помощью кортежей, но в каждом кортеже необходимо включить член [All] хоста.

Так что ваши три новых членов будет выглядеть примерно так:

MEMBER [SomeExistingDim].[SomeExistingHier].[All].[Company 1] AS 
    (
     [SomeExistingDim].[SomeExistingHier].[All] 
    ,[D_Item].[attrib].[Element1] 
    ) 
MEMBER [SomeExistingDim].[SomeExistingHier].[All].[Company 2] AS 
    (
     [SomeExistingDim].[SomeExistingHier].[All] 
    ,[D_Item].[attrib].[Element2] 
    ) 
MEMBER [SomeExistingDim].[SomeExistingHier].[All].[Company 3] AS 
    (
     [SomeExistingDim].[SomeExistingHier].[All] 
    ,[D_Item].[attrib].[Element3] 
    ) 
+ 
    (
     [SomeExistingDim].[SomeExistingHier].[All] 
    ,[D_Item].[attrib].[Element4] 
    ) 

Затем вы можете создать собственный набор из всего вышесказанного:

SET [newMembers] AS 
    { 
    [SomeExistingDim].[SomeExistingHier].[All].[Company 1], 
    [SomeExistingDim].[SomeExistingHier].[All].[Company 2], 
    [SomeExistingDim].[SomeExistingHier].[All].[Company 3], 
    } 
Смежные вопросы