Как получить меру в определенный день на этой неделе, используя MDX - PullRequest
0 голосов
/ 28 февраля 2012

Я новичок в MDX, у меня есть требование, которое использует меру в ту субботу в качестве значения по умолчанию для той недели, у меня есть измерение времени [КАЛЕНДАРЬ], но есть несколько иерархий, разные иерархии имеют разные начало недели, это означает, что в [CALENDAR]. [h1]. [DATE] началом недели может быть четверг (день недели в календаре природы), в другом может быть воскресенье (календарь природы), поэтому я должен использовать [КАЛЕНДАРЬ].[ДАТА], который является природным календарем, я могу получить соответствующую субботу,

   with member measures.[Weekday]
   as datepart('w',[CALENDAR].[Fiscal].currentmember)
   member measures.[SatDay]
   as dateadd('d'
   ,7-datepart('w',[CALENDAR].[Fiscal].currentmember.MemberValue)
   ,[CALENDAR].[Fiscal].currentmember.MemberValue)

   select 
   {
   [Measures].[Plan Count]
   ,measures.[Weekday]
   ,measures.[SatDay]
   }    on 0,
  [CALENDAR].[Fiscal].[Date]   on 1
  from [MyCube]

, но как я могу измерить в этот день?

1 Ответ

0 голосов
/ 27 марта 2012

Попробуйте выполнить дополнительный выбор, используя иерархию дат, содержащую неделю (год-неделя-дата).

with     member [Measures].[WeekDate] as 
        dateadd('d' ,7 - datepart('w',[Dim Date].[Year -  Week -  Date].currentmember.MemberValue)
                                   ,[Dim Date].[Year -  Week -  Date].currentmember.MemberValue)

select {[Measures].[WeekDate], [Measures].[Plan Count]} on 0,
        [Dim Date].[Year -  Week -  Date].Children on 1
from (
    select ([Dim Date].[Year -  Week -  Date].[Week]) on 0
    from [cube]
    where (
        //filters if necessary
    )
)
...