我正在研究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的经验,可以给我一些指示或方向吗?
答案 0 :(得分:2)
在MDX中你应该使用IIF功能;我知道没有IF / THEN / ELSE。
答案 1 :(得分:0)
[测量]。[你的测量] = [测量]。[Inkoop bedrag] + Iif(左([Kostensoort]。[Kosten code],1)=“7”,[测量]。[Bank bedrag],空)