我在MDX中有表达
Filter
(
{
[ ORDER ACTUAL].[Actual Hours Flag].&[Y]
,[MAINT D].[Preventive Flag].&[Y]
}
,[Measures].[No of Orders]
)
/
[Measures].[No of Orders]
* 100
我收到以下错误:
处理因MDX Script错误而失败
答案 0 :(得分:2)
其中一个结束支架丢失,但我猜这不是问题。考虑到你的表达是:
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)
这应该有效。
答案 1 :(得分:1)
你真的想使用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