0

我想计算来自同一数据集的两个字段的标准偏差。

示例:
MyFields1 = 10, 10
MyFields2 = 20

我现在想要的是 (10,10,20) 的标准差,预期结果是 4.7

在 SSRS 我想要这样的东西:
=StDevP(Fields!MyField1.Value + Fields!MyField2.Value)

不幸的是,这是不可能的,因为 (Fields!MyField1.Value + Fields!MyField2.Value) 返回单个值而不是值列表。有没有办法将同一数据集中的两个字段组合成某种临时数据集?

我唯一的解决方案是:

  1. 创建一个包含两个字段的所有值的新数据集。但这很烦人,因为我需要其中大约 20 个,而且我有六个报告参数需要过滤每个查询。=> 维护起来可能会变得非常缓慢和烦人。

  2. 手写公式。但我真的不知道怎么做。StDevP 对我来说并不是那么微不足道。这就是我使用 Avg 的方法,它在数学上更简单:
    =(SUM(Fields!MyField1.Value)+SUM(Fields!MyField2.Value))/2
    在这里找到:http ://social.msdn.microsoft.com/论坛/is/sqlreportingservices/thread/7ff43716-2529-4240-a84d-42ada929020e

顺便提一句。我知道做这样的计算很奇怪,但这是我的客户想要的,我必须以某种方式交付。

谢谢你的帮助。

4

1 回答 1

1

CTDevP 是标准差。这样的表达式对我来说很好, =StDevP(Fields!MyField1.Value + Fields!MyField2.Value)但它与一个值(Fields!MyField1.Value + Fields!MyField2.Value)的偏差始终为0。 您可以在此处查找公式: 标准偏差(wiki)

我相信您需要为某些组(或完整数据集)计算此值,为此您需要在 CTDevP 中设置您的范围:

=StDevP(Fields!MyField1.Value + Fields!MyField2.Value, "MyDataSet1")
于 2013-02-08T07:08:22.487 回答