MDX计数范围为当前上下文日期

时间:2017-01-17 16:53:19

标签: mdx

我希望我的MDX查询计算员工全天工作的天数。

措施是小时和出席时间,而维度是员工和日历日期。我不知道如何修改此查询:

WITH MEMBER [Measures].[IsPresent] as IIF([Measures].[Hours] >= [Measures].[Attended Hours],1,0)
    MEMBER [Measures].[CountOfDays] as DISTINCTCOUNT(EXISTING FILTER([Calender Date].[Calender].[Date], [Measures].[Hours] >= [Measures].[Attended Hours]))

    select {[Employee].[Number].[Number].ALLMEMBERS} on 0, {[Measures].[CountOfDays]} on 1 from (
        SELECT ({[Employee].[Number].[Number].ALLMEMBERS},{[Measures].[Hours],[Measures].[Attended Hours]}) ON 0
        , { [Calender Date].[Calender].[Date]}on 1
        From (select {[Calender Date].[Calender].[Date].&[2016-01-01T00:00:00] : [Calender Date].[Calender].[Date].&[2016-01-31T00:00:00]}  ON COLUMNS 
    FROM [BJ Cube]  WHERE ([Calender Date].[Is Work Day].&[Y]))
    )

示例数据集是:

enter image description here

1 个答案:

答案 0 :(得分:1)

以下MDX是否适合您?

MEMBER [Measures].[CountOfDays] as
SUM( 
    existing [Calender Date].[Calender].[Date].Members,
    IIF(
      [Measures].[Hours] >= [Measures].[Attended Hours],
      1,
      NULL
    )
)