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

Ssas 计算度量中的IIF语句在某些情况下具有意外行为,ssas,mdx,cube,olap-cube,iif,Ssas,Mdx,Cube,Olap Cube,Iif,我在多维数据集浏览器中有一组状态和子状态值,我只想在状态=1和子状态=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

我在多维数据集浏览器中有一组状态和子状态值,我只想在状态=1和子状态=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时,这将按预期工作,但当任务没有这些值时,该值将被计算并显示


这种行为的原因可能是什么

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]
   )
这与
作用域
形成对比,后者需要一个作为其参数

此外,我认为您不需要度量周围的
Min
,度量是在聚合或未聚合属性的每个组合上定义的