Как создать вычисляемый элемент на основе двух показателей и уровня иерархии текущего элемента запрашиваемого измерения? - PullRequest
0 голосов
/ 01 апреля 2011

у меня есть куб, который имеет

  • два члена меры: [Measures].[Value] (целое число) и [Measures].[EffectiveBelowLevel] (целое число).
  • измерение с именем [DimParentChild] с рваной иерархией пользователей с именем [ParentChildHierarchy].

Я хотел бы создать вычисляемый элемент в измерении мер ([Measures].[EffectiveValue]) на основе [Measures].[Value], который при запросах по [DimParentChild] и [ParentChildHierarchy] ведет себя следующим образом:

- [Measures].[Value] is used if the hierarchy level of [DimParentChild].[ParentChildHierarchy].CURRENTMEMBER > [Measures].[EffectiveBelowLevel].
 - 0 is used if the hierarchy level of [DimParentChild].[ParentChildHierarchy].CURRENTMEMBER <= [Measures].[EffectiveBelowLevel].

Можно ли достичь этой функции с помощью вычисляемого элемента в измерении мер?

Если да, то как будет выглядеть формула?

Если нет, то какой другой путь будет? Я также очень заинтересован в любом другом виде решения (например, запрос MDX и т. Д.)

Как пример:

<b>[Measures]</b>
<b>[Value] [EffectiveBelowLevel] ParentChildAssociation</b>
10      1                     GrandChild1
20      2                     GrandChild2
<b>[DimParentChild].[ParentChildHierarchy]</b>
<b>Member      HierarchyLevel   Description</b>
Parent        1             - 
Child         2             first child of Parent 
GrandChild1   3             first child of Child
GrandChild2   3             second child of Child

С этими данными [Показатели]. [EffectiveValue] должно выглядеть следующим образом

<b>ParentChild   EffectiveValue</b>
Parent            0
Child            10
GrandChild1      10
GrandChild2      20

Ответы [ 2 ]

0 голосов
/ 02 апреля 2011

Я вижу, что вы также разместили этот вопрос здесь (видел его изначально на форуме ssas msdn), поэтому я предоставляю ссылку на свой ответ, поскольку он может помочь другим людям. ссылка на тему на форуме SSAS msdn

@ Marc - так как это случай родительского дочернего измерения, и у измерений p / c могут быть данные, связанные с нелистными элементами, ваш запрос не будет возвращать правильные результаты. Мне потребовалось некоторое время, чтобы выяснить, как собрать правильные результаты от детей в этом случае и порекомендовать вам взглянуть на ссылку. Оффтоп: удачи с вашим продуктом, надеюсь, у меня будет время, чтобы оценить его однажды :)

С уважением, Hrvoje

0 голосов
/ 02 апреля 2011

Как насчет чего-то такого (я не уверен, что порядковый номер уровня основан на 0):

with member xx as 
  Sum( [DimParentChild].[ParentChildHierarchy].currentMember as myCurrentMember,
    Sum( Descendants( myCurrentMember(0), 64, LEAVES ), 
         IIF( myCurrentMember(0).level.ordinal > [EffectiveBelowLevel], [Value], 0 ) 
    )
  )

select [xx] on 0, [DimParentChild].[ParentChildHierarchy].members on 1 from [...]

Вы можете посмотреть эту документацию по MDXбольше деталей.

...