问题在于您为创建平均值所做的总和。它实际上只是将遇到的第一个数字相加,然后除以 10 并乘以 2。您需要将总和的范围更改为整个数据集。以下是我证明这一点的方法。
我以上面表格中的第二行数字为例。这是我的查询。
SELECT '1/15/14' AS dt, 1 AS value
UNION
SELECT '1/16/14' AS dt, 7 AS value
UNION
SELECT '1/17/14' AS dt, 5 AS value
UNION
SELECT '1/18/14' AS dt, 6 AS value
UNION
SELECT '1/19/14' AS dt, 4 AS value
UNION
SELECT '1/20/14' AS dt, 5 AS value
UNION
SELECT '1/21/14' AS dt, 5 AS value
UNION
SELECT '1/22/14' AS dt, 5 AS value
UNION
SELECT '1/23/14' AS dt, 6 AS value
UNION
SELECT '1/24/14' AS dt, 6 AS value
我在数据的列值中创建了一个带有 dt 的 tablix。如果我把你的平均计算放在下面的一行中,每列都会返回 9.8。
我首先使用您的填充表达式来确保我得到与您相同的结果。然后我改变它以获得正确的答案:
=iif(Sum(Fields!value.Value) >
(Sum(iif(Fields!dt.Value >= Dateadd("d",-10, today()), Fields!value.Value, CDbl(0)), "DataSet1")/10) * 2,
"Gold","White")
根据我掌握的数据,没有一个细胞应该变成金色,这就是我得到的结果。如果我将 1/15 的值更改为 20,然后预览我的表格,该单元格将变为金色,因为 69/10*2 = 13.8 且 20 > 13.8。