MDX-запрос с вложенными агрегатами

WITH 
  MEMBER [Measures].[newCalculatedMeasure] AS 
    Sum
    (
      Filter
      (
        Descendants
        (
          [Date].[28 Days Month Calendar].CurrentMember
         ,2
         ,LEAVES
        )
       ,
          [Measures].[mymeasure] * 10
        > 
          Avg
          (
            Filter
            (
              Descendants
              (
                [Date].[28 Days Month Calendar].CurrentMember
               ,2
               ,LEAVES
              )
             ,
              [Measures].[mymeasure] > 0
            )
           ,[Measures].[mymeasure]
          )
      )
     ,[Measures].[mymeasure]
    ) 
SELECT 
  [Date].[28 Days Month Calendar].MEMBERS ON 0
 ,[Measures].[newCalculatedMeasure] ON 1
FROM [cube];

Вышеупомянутый запрос не оценивает функцию внутреннего усреднения, в то время как если я заменю ее на фактическое среднее значение, она будет работать нормально

Может кто-нибудь сказать мне, что не так с вышеуказанной мерой..

1 ответ

Решение

Помогает ли разделение меры на именованные множества с этой проблемой контекста?

WITH 
  SET [MYSET] AS 
    Descendants
    (
      [Date].[28 Days Month Calendar].CurrentMember
     ,2
     ,LEAVES
    ) 
  SET [MYSETFILTERED] AS 
    Filter
    (
      [MYSET]
     ,
      [Measures].[mymeasure] > 0
    ) 
  MEMBER [Measures].[newCalculatedMeasure] AS 
    Sum
    (
      Filter
      (
        [MYSET]
       ,
        [Measures].[mymeasure] * 10 > Avg([MYSETFILTERED],[Measures].[mymeasure])
      )
     ,[Measures].[mymeasure]
    ) 
SELECT 
  [Date].[28 Days Month Calendar].MEMBERS  ON 0
 ,[Measures].[newCalculatedMeasure] ON 1
FROM [cube];

Именованные наборы с агрегатами могут иногда влиять на производительность, поэтому, извините, если все вышеперечисленное замедляет все.

Другие вопросы по тегам