Ssas MDX If语句语法

Ssas MDX If语句语法,ssas,mdx,olap,Ssas,Mdx,Olap,我正在SQLServer分析服务中进行计算度量。案情如下: 我们有一个字符串值,它包含一个4位数的数值。如果值以7开头,我们希望用另一个值添加一个值,如果不是,那么我们只希望显示该值 我试着先用when语句,再加上then和else部分 Case when (Left([Kostensoort].[Kosten code], 1) is "7") Then [Measures].[Inkoop bedrag] + [Measures].[Bank bedrag]

我正在SQLServer分析服务中进行计算度量。案情如下:

我们有一个字符串值,它包含一个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表达式中我可以做什么和不能做什么

但似乎没有人能解决我的问题


很明显,我遗漏了一些东西,有没有人对MDX和SSAS有经验,可以给我一些指示或方向?

在MDX中,你应该使用这个函数;据我所知,没有IF/THEN/ELSE。

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

嗨,马克,接下来,我认为ssas不支持Left语句,或者我做错了。我也试过InStr的声明,这对我来说也不起作用。我怀疑我没有用正确的方法计算表达式。但是我找不到任何其他的方法或者说我做错了什么。有什么想法吗?应该有效:确保度量值是字符串,或者使用CStr([…]),或者使用=而不是iifn解决与问题相关的任何问题。MDX中有一个IFX语句,也有一个类似于T-SQL的例子,请参见