问题描述
我有一个sql数据库,其中包含每月值以及每个月的一些valuetypeline和值,而问题是当我尝试将数据汇总到ssrs报告中的tablix矩阵中时
数据库示例
CustomerId | Year | Month | ValueTypeId | Value
---------------------------------------------
1 | 2020 | 1 | 1 | 500
1 | 2020 | 1 | 2 | 10
1 | 2020 | 2 | 1 | 200
1 | 2020 | 2 | 2 | 15
2 | 2020 | 1 | 1 | 100
2 | 2020 | 1 | 2 | 10
2 | 2020 | 2 | 1 | 1500
2 | 2020 | 2 | 2 | 15
我已经创建了一个特定valuetypeid的datalabel字段示例,其中考虑了我拥有的2个参数(“年”和“月”)
= IIF(Fields!ValueTypeId Value =“ 1”和Fields!Year.Value = Parameters!Year.Value和 Fields!Month.Value =参数!Month.Value,CDbl(Fields!ReportingValue.Value),CDbl(0))
当我创建一个tablix矩阵并将字段与[Sum(SalesMTD)]结合在一起时,假设Year = 2020和month = 2,结果将是200 + 1500 = 1700
如果我创建的表与添加nuew字段的示例相同,则结果是这样的。
CustomerId | Year | Month | ValueTypeId | Value | SalesMTD
-----------------------------------------------------------
1 | 2020 | 1 | 1 | 500 | 0
1 | 2020 | 1 | 2 | 10 | 0
1 | 2020 | 2 | 1 | 200 | 200
1 | 2020 | 2 | 2 | 15 | 0
2 | 2020 | 1 | 1 | 100 | 0
2 | 2020 | 1 | 2 | 10 | 0
2 | 2020 | 2 | 1 | 1500 | 1500
2 | 2020 | 2 | 2 | 15 | 0
问题是,当我们尝试计算平均值[Avg(SalesMTD)]时,是因为系统而不是执行此操作(200 + 1500)/ 2,所以它似乎要执行(0 + 0 + 200 + 0 + 0 + 0 + 1500 + 0)/ 8。对我来说有些不对劲。
有人可以帮忙吗?我尝试过averniff取0值,但我找不到它,无论如何,如果它是真实的,则0可能是一个可能的值,我认为问题更多是在字段0的计算中,该字段将0与实际中的条件应忽略或为空。对于总和是有效的,但是我发现对于平均值或其他计算不正确。
预先感谢