日期:2014-05-17  浏览次数:20684 次

大家看一下这个MDX语句怎么改
我要计算订单状态为1到5之间的订单总数。

度量值:订单数量  [Measures].[Porder 计数]
维度:状态维度  [Porder].[Handle Status]

我的计算语句:
SUM([Porder].[Handle Status].[1]:[Porder].[Handle Status].[5],[Measures].[Porder 计数])

但这个语句有时会报错,我查了一下,原因是因为,当[Porder].[Handle Status]没有值为1的状态值时,就报错,也就是说订单状态没有1的记录时就会出错。因为语句查的是状态1到5之间,但仓库中没有1的维度,所以就报错了。

后来我用Filter函数改写这个语句:
SUM(Filter([Porder].[Handle Status],[Porder].[Handle Status]>=1 and [Porder].[Handle Status]<=5),[Measures].[Porder 计数])

结果还是不行,真是没办法了,这个语句到底该怎么写啊?
------解决方案--------------------
运行下面的code,看看有没有结果,在这里面讨论有点不方便,我的QQ:55150560
select  
{[Measures].[Porder 计数] * [Porder].[Handle Status].members)
}on 0 
from ssas_db
where ([Porder].[Post_Year_Month_Day].[2011].[8].[23])