【问题标题】:How to find the Average in a Calculated Member with filtered Values?如何在具有过滤值的计算成员中找到平均值?
【发布时间】:2013-07-23 12:36:08
【问题描述】:

我目前正在尝试实现一个计算成员(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,这是我想从我所做的计数中排除的项目)。

【问题讨论】:

    标签: reporting-services ssas mdx average


    【解决方案1】:

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

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

    应该这样做:

    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?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多