1

我正在研究 SQL Server 分析服务中的计算度量。案件如下;

我们有一个包含 4 位数值的字符串值。如果该值以 7 开头,我们想添加一个带有另一个值的值,如果不是,那么我们只想显示该值。

我尝试先使用 when 语句,然后使用 then 和 else 部分;

Case

    when (Left([Kostensoort].[Kosten code], 1) is "7")
        Then [Measures].[Inkoop bedrag] + [Measures].[Bank bedrag]
        Else [Measures].[Inkoop bedrag]
End

这似乎不起作用。

然后我将其更改为这样的 if 语句;

if  (Left([Kostensoort].[Kosten code], 1) is "7")
    then [Measures].[Inkoop bedrag] + [Measures].[Bank bedrag]
    else [Measures].[Inkoop bedrag]
end if 

它一直说 then 关键字有错误,这让我相信我的 if 语句做错了

我还用'='替换了is,看看这是否重要,它没有

我在互联网上找到了多个来源,说我可以在 mdx 表达式中做什么和不能做什么;

http://msdn.microsoft.com/en-us/library/ms145517.aspx http://www.iccube.com/support/documentation/mdx/functions.html http://publib.boulder.ibm.com/ infocenter/comphelp/v101v121/index.jsp?topic=/com.ibm.xlf121.aix.doc/proguide/ifclause.html http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?主题=%2Fcom.ibm.dwe.cubemdx.doc%2Fmdx_expressions.html

但似乎没有一个能解决我的问题。

显然我错过了一些东西,那里有没有人对 MDX 和 SSAS 有经验,可以给我一些指示或方向?

4

2 回答 2

2

在 MDX 中,您应该使用IIF函数;我所知道的没有 IF / THEN / ELSE。

于 2013-06-21T09:51:13.000 回答
0

[Measures].[Your Measure] = [Measures].[Inkoop bedrag] + Iif(Left([Kostensoort].[Kosten code], 1) = "7", [Measures].[Bank bedrag], null)

于 2013-08-23T01:00:17.180 回答