Расчет MDX / Analysis Services за месяц до даты - PullRequest
1 голос
/ 18 октября 2010

Я обычно не связываюсь с MDX, если мне не нужно, но ....

У меня есть куб с простой таблицей фактов, связанной с измерением времени (со столбцами даты, месяца, годаи т. д.), и я хочу иметь возможность рассчитать общее число месяцев за этот день для данного дня месяца.

В SQL это будет пустяком, однако я не уверен, какдобиться этого в MDX.

Обновление У меня есть пример работы на фиксированную дату.Теперь я хочу знать, как это сделать на любую возможную дату

WITH
MEMBER MTD_15_Feb_2010 AS
Aggregate
(
  MTD([Date].[Year Name -  Quarter Name -  Month Name -  Name].[Name].[02/15/2010]),
  [Measures].[Value]
)
SELECT
{
 MTD_15_Feb_2010
} ON 0
FROM [Cube]

1 Ответ

2 голосов
/ 18 октября 2010

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

Редактировать: Существует несколько способов обновить ваш пример для любого дня.Я бы предложил заменить член даты [02/12/2010] на функцию CURRENTMEMBER.Это также позволит вам отобразить значение для нескольких дат, как в примере ниже.

WITH MEMBER [MTD_Value] AS AGGREGATE (
      MTD([Date].[Year Name -  Quarter Name -  Month Name -  Name].[Name].CURRENTMEMBER)
      , [Measures].[Value]
    )
SELECT [MTD_Value] ON 0
  , {
      [Date].[Year Name -  Quarter Name -  Month Name -  Name].[Name].[02/15/2010]
      , [Date].[Year Name -  Quarter Name -  Month Name -  Name].[Name].[01/15/2010]
      , [Date].[Year Name -  Quarter Name -  Month Name -  Name].[Name].[02/15/2009]
    } ON 1
FROM [Cube]
...