处理失败并出现 MDX 脚本错误

Processing fails with MDX Script error

我在 MDX 中有表达式

    Filter
    (
      {
        [ ORDER ACTUAL].[Actual  Hours Flag].&[Y]
       ,[MAINT  D].[Preventive  Flag].&[Y]
      }
     ,[Measures].[No of  Orders]
    )
  / 
    [Measures].[No of  Orders]
* 100

我收到以下错误:

Processing fails with MDX Script error

缺少一个右大括号,但我猜这不是问题所在。考虑到你的表达是:

 filter (
 {[ ORDER ACTUAL].[Actual  Hours Flag].&[Y] ,  [MAINT  D].[Preventive  Flag].&[Y]} 
 ,[Measures].[No of  Orders])/[Measures].[No of  Orders]* 100)

您的代码失败是因为您试图将不同层次结构的成员聚集在同一个集合中。 但是,在 MDX 中这是不允许的。 (花括号,或{}代表一个集合)。你需要的是:

 filter (
 ([ ORDER ACTUAL].[Actual  Hours Flag].&[Y] ,  [MAINT  D].[Preventive  Flag].&[Y]) 
 ,[Measures].[No of  Orders])/[Measures].[No of  Orders]* 100)

应该可以。

您真的要使用 filter 还是您只是在使用不为空的元组?我问的原因是你的过滤器的第二个参数不是布尔条件,所以我猜你只想要非空元组,如下所示:

    NonEmpty
    (
      (
        [ ORDER ACTUAL].[Actual  Hours Flag].&[Y]
       ,[MAINT  D].[Preventive  Flag].&[Y]
      )
     ,[Measures].[No of  Orders]
    )
  / 
    [Measures].[No of  Orders]
* 100

以防万一您需要使用 Filter 函数,语法更类似于以下内容:

Filter
(
  (
    [ ORDER ACTUAL].[Actual  Hours Flag].&[Y]
   ,[MAINT  D].[Preventive  Flag].&[Y]
  )
 ,[Measures].[No of  Orders] > 0  //<<< a Boolean (e.g. =/<>/>/<) condition is here
)

/ [措施].[订单数量] * 100