我正在 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 的经验,可以给我一些指导或方向?
最佳答案
在 MDX 中,您应该使用 IIF功能;据我所知,没有 IF/THEN/ELSE。
关于ssas - MDX If 语句语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17232109/