在MDX中创建按日期范围过滤的计算度量

时间:2017-06-06 11:36:03

标签: range mdx measure period

我正在尝试创建一个计算成员来计算员工年初至今的nb。 YTD我指的是任何给定时间段内的员工数量。我的事实表有2个日期维度StartDate和EndDate。我想按如下方式计算YTD员工。

StartDate的成员等于或等于当前期间 和 当前期间的EndDate或者EndDate为NULL

1 个答案:

答案 0 :(得分:1)

我有类似的任务,最终得到以下解决方案:

SUM(
    [EmployeeChanging].[EmployeeChanging].[EmployeeChanging].Members,
    IIF(
        [Measures].[EmployeeFrom] <= [Measures].[MaxDay]
        and 
        [Measures].[EmployeeTo] >= [Measures].[MinDay],
        [Measures].[EmployeeChangingCount],
        NULL
    )
)

有以下格式的暗淡/事实表:

  

EmployeeID + StartDate + EndDate

创建一个新维度EmployeeChanging,其中键是EmployeeID + StartDate,一个度量组基于与[Measures]相同的表。[EmployeeFrom],[Measures]。[EmployeeTo],[Measures]。[EmployeeChangingCount]测量最大,最大,计数聚合。此外,您还必须提供[Measures]。[MaxDay]和[Measures]。[MinDay]根据您的日期维度测量相同日期字段的最大和最小聚合。就是这样。 您也可以隐藏您的EmployeeChanging维度,因为它仅适用于MDXing。