的问题是你在做创建你的平均总和。它实际上只是总结它遇到的第一个数字,然后除以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。
为什么你有DateAdd(“d”, - 30,TODAY())?我以为你只是将它与10天的平均值进行比较? – mmarie
@mmarie apologies - typo:表达式使用说10。我已经结束了添加另一列TenDayAvg到我的'DataSet',因此简化这个表达式来比较那个列 - 现在的格式工作.....但我'米仍然有兴趣知道为什么上述失败。 – whytheq