【发布时间】:2011-07-05 08:21:04
【问题描述】:
在我的日期维度中,我有 2 个层次结构:
[年 - 周 - 日期] 和 [年 - 月 - 日期]
如果日期维度的当前级别是 [Date](最低级别)或更高级别,我想检查 Cube Calculation。
我怎样才能做到这一点?
背景:我需要这个来计算员工在一段时间内有多少工作日。 我目前有这段代码(未经测试)应该可以解决 1 个层次结构的问题,但我想当用户使用 [Year - Week - Date] 层次结构时这会失败。
CASE WHEN
[Date].[Year - Month - Date].CURRENTMEMBER.Level
IS
[Date].[Year - Month - Date].[Date]
THEN
//at day level,
//if there is any duration booked, this is a working day
IIF([Measures].[Duration] = 0,0,1)
ELSE
//at higher than day level,
//count days
COUNT(
// where duration > 0 (employee work day)
FILTER(
Descendants([Date].[Year - Month - Date].CURRENTMEMBER, [Date].[Year - Month - Date].[Date]),
[Measures].[Duration] > 0
)
)
END
tl;dr如何让上述代码以最简洁的方式也适用于 [Year - Week - Date] 层次结构。
【问题讨论】:
-
我刚刚发现了 Descendants 函数中的 'SELF' 标志,这避免了我的问题,但我仍然很好奇