在MDX中根据日期添加度量值

时间:2017-07-30 09:54:31

标签: ssas mdx iif

我正在尝试使用以下逻辑在MDX中创建一个度量 -

IIF([Date].[Date].CurrentMember.MemberValue >= '2017-06-01', [Measure 1] + [Measure 2], [Measure 1] + [Measure 3])

上面的表达式不起作用,因为它只对所有日期执行一次计算,但不是在指定的条件下执行。此外,即使在行上拖动年份,计算也应该有效。我的意思是它应该计算6月之前和6月之后的日期的measure1 + measure2并再次返回这两个总和。

任何人都可以提供任何输入,我该如何实现?我需要在这里使用像SCOPE这样的东西吗?

谢谢

1 个答案:

答案 0 :(得分:0)

此计算不起作用的原因是MDX计算是在聚合数据后执行的,但编写的计算需要在日期级别执行,而不管聚合数据的级别如何。

如果您有日期层次结构,则可以使用类似以下计算的内容来聚合与当前过滤器/维度选择相关的叶项:

SUM(DESCENDANTS([Date].[Hierarchy].CURRENTMEMBER, , LEAVES), IIF([Date].[Date].CurrentMember.MemberValue >= '2017-06-01', [Measure 1] + [Measure 2], [Measure 1] + [Measure 3]))

这不会非常有效或快速,但如果你不需要它快速燃烧,那就足够了。