【发布时间】:2020-09-24 13:00:26
【问题描述】:
我有一个每月值的 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
考虑到我拥有的 2 个参数(年和月),我已经为特定的 valuetypeid 创建了一个 datalabel 字段示例
=IIF(Fields!ValueTypeId Value="1" and Fields!Year.Value=Parameters!Year.Value and Fields!Month.Value=Parameters!Month.Value,CDbl(Fields!ReportingValue.Value),CDbl(0))
当我创建一个 tablix 矩阵并使用 [Sum(SalesMTD)] 输入字段时,假设年份 =2020 和月份 = 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。这对我来说是错误的。
有人可以帮我解决这个问题吗?我已经尝试过平均 0 值,但我找不到它,无论如何,如果它是真实的,0 可能是一个可能的值,我认为问题更多在于计算将 0 放在不包含的行中的字段在现实中的条件应该被忽略或为空。对于总和是有效的,但我发现对于平均值或其他计算不正确。
提前致谢
【问题讨论】:
-
这个计算可以用作字段吗? =IIF(Fields!ValueTypeId Value="1" and Fields!Year.Value=Parameters!Year.Value and Fields!Month.Value=Parameters!Month.Value,CDbl(Fields!ReportingValue.Value),Nothing) 我是尝试,它似乎工作,但我不知道它是否有不良后果
标签: reporting-services field average