如何在RDLC中仅对来自合并数据的重复值之一求和

问题描述

我不确定SSRS是不是很傻,还是我(我倾向于两者)。

我有一个数据集(由于联接等的结果),有些列的每一行都重复相同的值(相当标准的数据库内容):

rid    cnt    bid   flg1   flg2
-------------------------------
4      2882   1     17     3
5      2784   1     17     3
6      1293   1     17     3
18     9288   2     4      9
20     762    2     4      9

基于cnt的报告非常简单。我还可以制作一个显示以下内容的Tablix:

bid    flg1   flg2
------------------
1      17     3
2      4      9

(其中Tablix按Fields!bid.Value分组并且列分别仅为Fields!flg1.ValueFields!flg2.Value。)

我不知道如何显示这些值的总和-特别是我想显示flg1的总和为21而flg2的总和为12-不是数据集中每一行的总和(对每个值进行多次计数)。

(请注意,我并不是要查找不同值的总和,因为它们可能不是唯一的。我希望每个bid组中一个值的总和,因为它来自表联接,因此它们将始终具有相同的值。)

如果可能的话,我也希望能够在报告的顶层进行类似的计算(不在任何列表中);尽管如果那是唯一的方法,我会选择隐藏详细信息行。

很显然,Sum(Fields!flg1.Value)不是答案,因为它要么返回51(如果在组内的第一行),要么返回59(如果在组外)。 我也尝试过Sum(Fields!flg1.Value,"bid"),但这不是有效范围。 我也尝试过Sum(First(Fields!flg1.Value,"bid")),但显然出于某些奇怪的原因,您不允许对第一个值求和(无论如何也可能遇到相同的范围问题)。

使用Sum(Max(Fields!flg1.Value,"bid")) 有用,但是感觉不对。有更好的方法吗?

(相关:是否有一种好的方法来保存那个计算的结果,以便以后我也可以显示这些总数的总和而又没有更毛茸茸的表情?)

解决方法

有两种基本方法。

  1. 执行已完成的操作(Sum(Max(Fields!flg1.Value,"bid"))

  2. 求和渲染值。为此,请检查包含所需数据的单元格的名称(检查其属性),然后使用类似=SUM(ReportItems!flg1.Value)的名称,其中flg1是文本框的名称,不一定总是相同的名称作为字段。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...