计算量度中的IIF语句在某些情况下具有意外行为

时间:2013-12-18 08:43:02

标签: ssas mdx cube olap-cube iif

我在多维数据集浏览器中有一组状态和子状态值,我想只在status = 1和substatus = 1

时才获得该对的最大插入日期

我创建了一个具有以下表达式的度量:

    IIF(([Trans Tasks FFMS Farah GVV].[Task Status].&[1],[Trans Tasks FFMS Farah GVV].[Task Sub Status].&[2]), 
    '-', Min([Measures].[Minimum Insertion DT]))

当某个任务的状态为1且子状态2时,它按预期工作,但当任务没有这些值时,计算并显示该值!

这种行为的原因是什么?

1 个答案:

答案 0 :(得分:1)

IIf需要 条件 作为第一个参数,因此您必须编写

IIF([Trans Tasks FFMS Farah GVV].[Task Status].CurrentMember IS [Trans Tasks FFMS Farah GVV].[Task Status].&[1]
     AND
    [Trans Tasks FFMS Farah GVV].[Task Sub Status].CurrentMember IS [Trans Tasks FFMS Farah GVV].[Task Sub Status].&[2]), 
    '-',
    [Measures].[Minimum Insertion DT]
   )

这与需要 set 作为参数的SCOPE形成鲜明对比。

此外,我认为您不需要围绕该度量的Min,在聚合或非聚合属性的每个组合中定义度量。