Годовая выручка - СУММА выручки за последние 12 полных месяцев расчет mdx SSAS

Я новичок в мире MDX и в настоящее время улучшаю ssas cube.

Я пытаюсь создать вычисляемый член в кубе SSAS, чтобы получить годовой доход (СУММА дохода за последние 12 полных месяцев) для каждого устройства (продукта). В начале, созданном под запросом многомерных выражений, но показывающим только имена устройств, Годовой доход показывает (ноль).

Требуются ли какие-либо исправления для этого запроса многомерных выражений? или оцените, если кто-нибудь может дать мне пример на основе куба AdventureWorks.

Вот мой запрос многомерных выражений:

WITH 
  MEMBER [Measures].[Annualised Revenue] AS 
    Sum
    (
        ClosingPeriod
        (
          [Invoice Date].[Calendar Month].[Invoice Calendar Month]
         ,[Invoice Date].[Calendar Month].[All Periods]
        ).Lag(12)
      : 
        ClosingPeriod
        (
          [Invoice Date].[Calendar Month].[Invoice Calendar Month]
         ,[Invoice Date].[Calendar Month].[All Periods]
        )
     ,[Measures].[Amount]
    ) 
SELECT 
  [Measures].[Annualised Revenue] ON 0
 ,[Terminal].[Terminal ID].MEMBERS ON 1
FROM [cube_txn];

Нужно ли мне добавлять where cluase как «где ([Дата счета-фактуры]. [Календарный месяц]. [Календарный год счета-фактуры]. & [2013]»)

Когда он запускается, он должен выбрать текущий месяц как базовый и рассчитать ревун за последние 12 месяцев.

Я ожидаю результатов, как показано ниже (игнорируйте 14 января и 15 января):

deviceID    SumOfAnnualisedRevenue  Jan14   Jan15
---------   ----------------------  -----    ------
A10001      12,4500     5000   15000
A10003      45,50000    15000   78000
A10006      78,00       12000   890
A10008      8,945       450     120  

person Niel    schedule 17.03.2015    source источник


Ответы (1)


Это помогает?

WITH 
  MEMBER [Measures].[Annualised Revenue] AS 
    Sum
    (
        ClosingPeriod
        (
          [Invoice Date].[Calendar Month].[Invoice Calendar Month]
         ,[Invoice Date].[Calendar Month].[All Periods]
        ).Lag(12).item(0).item(0)
      : 
        ClosingPeriod
        (
          [Invoice Date].[Calendar Month].[Invoice Calendar Month]
         ,[Invoice Date].[Calendar Month].[All Periods]
        ).item(0).item(0)
     ,[Measures].[Amount]
    ) 
SELECT 
  [Measures].[Annualised Revenue] ON 0
 ,[Terminal].[Terminal ID].MEMBERS ON 1
FROM [cube_txn];

Если это ошибка [Terminal].[Terminal ID].MEMBERS, попробуйте вместо этого одно из следующего (я не могу точно сказать, что сработает, не увидев вашу базу данных):

[Terminal].[Terminal ID].[Terminal ID].MEMBERS 
[Terminal].MEMBERS
[Terminal ID].[Terminal ID].MEMBERS  
person whytheq    schedule 17.03.2015
comment
У меня ОШИБКА: выполнение запроса ... Запрос (20, 3) Функция ЧЛЕНЫ ожидает выражение иерархии для аргумента. Было использовано выражение члена. Выполнение завершено Имеется измерение даты счета-фактуры с иерархией календарного месяца, как показано ниже: -Иерархия календарного месяца - ›[Дата счета-фактуры]. [Календарный месяц]. [Календарный год счета-фактуры] -› [Дата счета-фактуры]. [Календарный месяц]. [Счет-фактура Календарный квартал] - ›[Дата счета-фактуры]. [Календарный месяц]. [Календарный месяц счета-фактуры] -› [Дата счета-фактуры]. [Календарный месяц]. [Дата счета-фактуры] Любые рекомендации - person Niel; 18.03.2015
comment
вы используете функцию MEMBERS в конце этого выражения (да, функции могут стоять в конце выражений в mdx!): [Terminal].[Terminal ID].MEMBERS - person whytheq; 18.03.2015
comment
Я выполнил запрос, но результаты такие же, в столбце «Годовой доход» отображается # Ошибка для каждого идентификатора терминала. - person Niel; 19.03.2015