我目前正在尝试实施一个计算成员(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中排除那个。)
答案 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?