1

另一个 MDX 问题;

如本问题所述 MDX If 语句语法

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

所以我要做的是:

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

根据文档,我怀疑会发生以下情况;

语法:IIF(求值,真表达式,假表达式)

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

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

我不知道该怎么做。欢迎任何见解

4

2 回答 2

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])
于 2013-06-21T15:11:28.440 回答
0

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

CLng( [Kostensoort].[Kosten code] ) >= 7000
于 2013-06-22T00:13:20.003 回答