MDX IIF评估字符串值

时间:2013-06-21 13:42:59

标签: ssas mdx olap

另一个MDX问题;

如本问题所述 MDX If statement syntax

我有一个包含4位数字的字符串值。我想评估该字符串的第一个数字或字符

所以我这样做是:

IIF(([Kostensoort].[Kosten code] >= 7000 AND [Kostensoort].[Kosten code] < 8000), 
[Measures].[Inkoop bedrag] + [Measures].[Bank bedrag], 
[Measures].[Inkoop bedrag])

我怀疑发生的事情,根据文件如下;

语法:IIF(Evalutation,true expression,false expression)

实际发生的是,在我尝试编写表达式时,评估返回false。我知道这一点,因为价值被打印出来。如果我输入一个静态数字,也会在我的立方体中打印出来。

是的,我确实知道我将Kosten代码的值解释为整数,即使它是一个字符串,我也尝试使用Instr和Left,这也没有产生任何结果。

我在这里不知所措。欢迎任何见解

2 个答案:

答案 0 :(得分:1)

您需要确保抓住维度的当前成员。您的示例可能会返回“全部”

[Kostensoort].[Kosten code].currentMember

更改后,您可以使用StrToValue

IIF((StrToValue([Kostensoort].[Kosten code].currentMember) >= 7000 AND [Kostensoort].[Kosten code] < 8000), 
[Measures].[Inkoop bedrag] + [Measures].[Bank bedrag], 
[Measures].[Inkoop bedrag])

答案 1 :(得分:0)

您应该将字符串转换为数值;尝试这样的事情:

CLng( [Kostensoort].[Kosten code] ) >= 7000