1

我目前正在尝试实现一个计算成员(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 

(不除以 4,因为 1 个项目的值为 0,这是我想从我制作的 Count 中排除的项目)。

4

1 回答 1

0

Duane Dicks 在 MSDN 论坛上回答了我的问题,我将在下面发布。

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

这样的事情应该这样做:

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

" MSDN:如何在具有过滤值的计算成员中找到平均值?

于 2013-07-24T09:40:51.433 回答