MDX If语句语法

时间:2013-06-21 09:42:28

标签: ssas mdx olap

我正在研究SQL Server Analysis Service中的计算度量。案例如下;

我们有一个包含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?topic=%2Fcom.ibm.dwe.cubemdx.doc%2Fmdx_expressions.html

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

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

2 个答案:

答案 0 :(得分:2)

在MDX中你应该使用IIF功能;我知道没有IF / THEN / ELSE。

答案 1 :(得分:0)

[测量]。[你的测量] = [测量]。[Inkoop bedrag] + Iif(左([Kostensoort]。[Kosten code],1)=“7”,[测量]。[Bank bedrag],空)