2014-10-21 5 views
0

Как изменить этот сценарий так, чтобы HEAD не был включен в функцию агрегации SUM?Функция HEAD внутри функции агрегации SUM

Поэтому я хотел бы сделать это, что я предупреждаются, что:

Function «Head» был использован внутри функции агрегации - это отключает режим блока вычисления

WITH 
    SET [LatestDate] AS 
    [Date].[Calendar].[Date].&[20060611] 
    MEMBER [Measures].[Sales] AS 
    [Measures].[Internet Sales Amount] 
    MEMBER [Measures].[Sales_EquivMTD] AS 
    Sum 
    (
     Head 
     (
     [Date].[Calendar].CurrentMember.Children 
     ,11 
    ) 
    ,[Measures].[Sales] 
    ) 
SELECT 
    { 
    [Measures].[Sales] 
    ,[Measures].[Sales_EquivMTD] 
    } ON COLUMNS 
,NON EMPTY 
    [Date].[Calendar].[Month].MEMBERS ON ROWS 
FROM [Adventure Works]; 

ответ

1

Вы могли бы заменить

Head 
     (
     [Date].[Calendar].CurrentMember.Children 
     ,11 
    ) 

с выражением диапазон:

[Date].[Calendar].CurrentMember.Children.Item(0) : [Date].[Calendar].CurrentMember.Children.Item(10) 

Но я не уверен, что это помогает повышению производительности. И это может вызвать ошибку у членов, имеющих менее 11 детей.

+0

@frankPI +1 спасибо - интересно, почему инструмент Моши дает мне это сообщение? Должен быть действительный альтернативный подход. Возможно, с тех пор, как он в последний раз обновил инструмент, двигатель был изменен, поэтому он работает в блочном режиме. – whytheq

+0

Если вы получаете 2 миллиона запасных, не могли бы вы проверить этот вопрос: http://stackoverflow.com/questions/26588874/mdx-how-to-calculate-measure-against-dimension-without-displaying-members-in-res/ 26591528 # 26591528. Я уверен, что вы узнаете ответ на него, но я попытался ответить и увлекся тем, что он не работает ... так что если бы вы могли прокомментировать мой ответ, я был бы счастлив! – whytheq