2010-10-18 3 views
1

Я обычно не ввязываться с MDX, если я не должен, но ....MDX/Analysis Services Расчет Month To Date

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

В 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] 
+0

Если вы можете предоставить более подробную информацию о вашем кубе и измерении времени, я могу привести пример MDX в свой ответ. –

ответ

2

Вы должны быть в состоянии создать 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] 
+0

См. Обновление. ура – AJM

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