iif in维度成员(MDX)

时间:2014-08-12 19:28:55

标签: mdx dimension iif

我需要在新指标上创建一个“业务规则”,该指标考虑“条​​件a”上的某些值以及“条件b”上的其他值,并且此条件位于日期之前或之后。

更具体:如果日期在2010-11-01之前,则指标将总和值A + B;如果不是,则度量将对值C + D求和。

我的“期间”维度有一个关键日期,但在此格式20101101,我尝试以下代码:

iif(
    [Period].[Period].[Date] < [Period].[Period].[Date].&[20101101],
    (
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[1]&[69552],[Measures].[Saldo Final]) +
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[2]&[69463],[Measures].[Saldo Final]) +
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[3]&[53054],[Measures].[Saldo Final])  +
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[4]&[63740],[Measures].[Saldo Final]) +
        ( [Plano Contas].[Plano de Contas].[Conta Contábil].&[273],[Measures].[Saldo Final]) +
        ( [Plano Contas].[Conta Contábil].&[464],[Measures].[Saldo Final])
    ),
    (
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[1]&[69552],[Measures].[Saldo Final]) +
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[2]&[69463],[Measures].[Saldo Final]) +
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[3]&[53054],[Measures].[Saldo Final])  +
        ( [Plano Contas].[Plano de Contas].[Totalizadora 4].&[4]&[63740],[Measures].[Saldo Final])
    )
)

我认为我的错误是在“iif”的开头,但我不知道如何解决这种情况。

我的期间维度(20101101)的关键字是数字字段,而不是日期字段。

1 个答案:

答案 0 :(得分:0)

IIF条件不会比较两个成员的键的值,而是比较两个单个成员元组的多维数据集值(使用当前/默认[Measures])。

假设我们可以直接比较这些键的值(它看起来像数字格式yyyymmdd就可以了),你可以使用properties函数执行以下操作:

IIF ( [Period].[Period].currentMember.properties( "key", TYPED ) < 20101101 )

您可以查看MDX gentle introduction以获取有关MDX表示法和概念的更多详细信息。