如何使用筛选值查找计算成员中的平均值?

时间:2013-07-23 12:36:09

标签: reporting-services ssas mdx average

我目前正在尝试实施一个计算成员(SSRS或SSAS),它会显示每个客户的平均值,我需要将所有项目中的值之和除以,并将其除以不包含的项目数量将0作为值。

类似我正在使用的值表如下所示。

> Customer   | Project   |  Value      |
> Customer1  | Project1   | 124.24...  |
> Customer1  | Project2   |     0.00   |
> Customer1  | Project3   | 242.221... |
> Customer1  | Project3   | 72.221...  |

现在我在计算会员中尝试做的是以下内容(我在SSRS和SSAS中都尝试了这个)

Sum([Measures].[Value]) /Count(Filter([Order].[Project], [Measures].[Value] > 0))

我希望过滤出价值为零的项目金额,并将值之和除以价值为<>的项目金额。 0

问题是,当我到达浏览器,所以我尝试我的计算成员,项目的计数值(相对于前面的例子)是1而不是3, 我得到的平均值是:

  

(124.24 + 0 + 242.221 + 72.221)/ 1

而不是

  

(124.24 + 0 + 242.221 + 72.221)/ 3

(不是因为1个项目的值为0,而不是4,因为我想从我的Count中排除那个。)

1 个答案:

答案 0 :(得分:0)

我的问题已在Duane Dicks的MSDN论坛上得到解答,我将在下面发帖。

“想想为什么你只得到1而不是3是因为你的过滤器只是看着所有成员,它应该看着它的孩子。

这样的事情应该这样做:

Sum([Measures].[Value]) /Count(Filter([Order].[Project].level(0).Children, [Measures].[Value] > 0))

MSDN: How to find the Average in a Calculated Member with filtered Values?