2016-12-09 2 views
0

Как я могу рассчитать MTD за текущий месяц в прошлом году? Ниже запроса возвращается сумма [Чистая сумма продаж] за 12.2015, но должна иметь продажи с 01.12.2015 по 09.12.2015 (Сегодня).MTD за текущий месяц в прошлом году

SUM(
     MTD(
      ParallelPeriod(
       [Calender].[YMD].[Month], 
       12, 
       [Calender].[YMD].CurrentMember 
      ) 
     ) 
     ,[Measures].[Net Sales Amount] 
    ) 

ответ

1

Я думаю, вам нужно использовать HEAD члена вы найти:

SUM(
    HEAD(
     ParallelPeriod(
      [Calender].[YMD].[Month], 
      12, 
      [Calender].[YMD].CurrentMember 
     ).CHILDREN, 
    , 9 
    ) 
    ,[Measures].[Net Sales Amount] 
) 

выше при условии, что в конструкции вашего куба Даты являются дети месяца.

Вам нужно сделать динамик 9 - у вас есть будущие даты в вашем кубе?

Если у вас нет будущего даты, то это может работать:

WITH 
    MEMBER [Measures].[NumDaysInCurrentMonth] AS 
     Count(
      Descendants(
      TAIL([Date].[Calendar].[Month]).Item(0) //<<<not sure if Item(0) is required 
      ,[Date].[Calendar].[Date] 
      ,SELF 
     ) 
     ) 

Если у вас есть будущие даты, то возможно следующее:

WITH 
    MEMBER [Measures].[NumDaysInCurrentMonth] AS 
     count(
      NONEMPTY(
      Descendants(
       TAIL([Date].[Calendar].[Month]).Item(0) //<<<not sure if Item(0) is required 
       ,[Date].[Calendar].[Date] 
       ,SELF 
      ) 
     ) 
     ) 

Тогда один из вышеперечисленного может подаваться в предыдущий:

WITH 
    MEMBER [Measures].[NumDaysInCurrentMonth] AS 
    COUNT(
     Descendants(
      TAIL([Date].[Calendar].[Month]).Item(0) //<<<not sure if Item(0) is required 
      ,[Date].[Calendar].[Date] 
      ,SELF 
     ) 
    ) 
    MEMBER [Measures].[PrevYearMTD] AS 
    SUM(
     HEAD(
      ParallelPeriod(
       [Calender].[YMD].[Month], 
       12, 
       [Calender].[YMD].CurrentMember 
      ).CHILDREN, 
     , [Measures].[NumDaysInCurrentMonth] 
     ) 
     ,[Measures].[Net Sales Amount] 
    ) 
Смежные вопросы