2016-07-21 2 views
1

Я пытаюсь вычислить скользящее среднее с использованием MDX в SSAS 2014, но все результаты выдаются (null).MDX: Расчет скользящего среднего только дает (null) результаты

Чтение нескольких веб-ссылки и блог заставляет меня думать, что это должно работать, давая 3-месячного скользящего среднего:

With 
    MEMBER [Measures].[MA3] AS 
    Avg(
     [Date].[Calendar Years].[Month].CurrentMember.Lag(2) 
      : [Date].[Calendar Years].[Month], 
     [Measures].[Project Views] 
     ) 

SELECT { [Measures].[Project Views], [Measures].[MA3] } ON 0, 
      [Date].[Calendar Years].[Month] ON 1 
FROM [ProjectAccesses] 

Однако (нуль) появляется в каждом столбце.

Я бы ожидать, что кол-членов, чтобы быть в каждом случае 3 с помощью:

MEMBER [Measures].[C3] AS 
    Count(
      [Date].[Calendar Years].[Month].CurrentMember.Lag(2) 
      : [Date].[Calendar Years].[Month], 
      INCLUDEEMPTY 
     ) 

, но опять же, никакой ошибки синтаксиса не обнаружено, но все значения (нуль), что приводит меня к мысли, что, может быть, месячные наборы пустые.

Я был вокруг и вокруг этого часами, и у меня не хватило сил, чтобы попробовать.

Может кто-нибудь предложить, что может пойти не так, пожалуйста; Я новичок в MDX, поэтому возможно, что мой запрос неправильно структурирован или есть некоторая ошибка в моей конфигурации куба, которую я не смог найти.

Благодаря

ответ

0

Я удивлен, что вы не можете использовать иерархию календарных лет на всем протяжении. Я добавил несколько дополнительных диагностических мероприятий, так что вы можете увидеть, что функция CurrentMember возвращается:

WITH 
    MEMBER [Measures].[MA3] AS 
     AVG(
      [Date].[Calendar Years].CurrentMember.Lag(2) 
      : [Date].[Calendar Years].CurrentMember, 
      [Measures].[Project Views] 
     ) 
    MEMBER [Measures].[C3] AS 
    COUNT(
      [Date].[Calendar Years].CurrentMember.Lag(2) 
      : [Date].[Calendar Years].CurrentMember, 
      INCLUDEEMPTY 
     ) 
    MEMBER [Measures].[Diagn1] AS 
    [Date].[Calendar Years].CurrentMember.member_caption 
    MEMBER [Measures].[Diagn2] AS 
    [Date].[Calendar Years].CurrentMember.Lag(2).member_caption 
SELECT 
    { 
     [Measures].[Project Views] 
    , [Measures].[MA3] 
    , [Measures].[C3] 
    , [Measures].[Diagn1] 
    , [Measures].[Diagn2] 
    } ON 0, 
    [Date].[Calendar Years].[Month].MEMBERS ON 1 
FROM [ProjectAccesses]; 
+0

Спасибо @whytheq. Это дает ожидаемые значения во всех столбцах с диагнозом, содержащим имя месяца, и с правильной задержкой Diagn2. То, что не сработало, было моим оригинальным [Date]. [Calendar Years]. [Month] .currentmember. Это дало мне полезный пример, поэтому я собираюсь отметить это как ответ. –

1

Я считаю, что вам нужно изменить

": [Date].[Calendar Years].[Month]," 

Для

": [Date].[Calendar Years].currentmember," 

[Дата] [Календарь Годы] [месяц] -..> Должен предоставить, не текущий член, который вы хотите

+0

Привет @ebayindir, это одна из вещей, которые я пробовал (даже несмотря на примеры, которые я моделируется мой запрос на Бесполезный Это не так. К сожалению, добавление .CurrentMember ничего не меняет. –

0

Я нашел решение. Я предположил, что мне нужно будет сформировать свой набор, основанный на члене в моей иерархии [Calendar Years]. Однако следующее, без иерархии, отлично работает (хотя я не могу объяснить, почему исходная версия не была).

With 
    MEMBER [Measures].[MA3] AS 
     Avg(
      [Date].[Month].CurrentMember.Lag(2) 
      : [Date].[Month].CurrentMember, 
      [Measures].[Project Views] 
     ) 
    MEMBER [Measures].[C3] AS 
    Count(
      [Date].[Month].CurrentMember.Lag(2) 
      : [Date].[Month].CurrentMember, 
      INCLUDEEMPTY 
     ) 

SELECT { [Measures].[Project Views], [Measures].[MA3] , [Measures].[C3] } ON 0, 
      [Date].[Calendar Years].[Month] ON 1 
FROM [ProjectAccesses] 
+1

Это также сработало бы - '[Date]. [Calendar Years] .CurrentMember'. – SouravA

+0

@SouravA Я добавил mdx для документации - можете ли вы добавить свой голос, так как нам нужно несколько голосов для создания тега: http://stackoverflow.com/documentation/mdx – whytheq

+0

Отправил мой голос. – SouravA

Смежные вопросы