如何解决如何在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.Value
和Fields!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"))
有用,但是感觉不对。有更好的方法吗?
(相关:是否有一种好的方法来保存那个计算的结果,以便以后我也可以显示这些总数的总和而又没有更毛茸茸的表情?)
解决方法
有两种基本方法。
-
执行已完成的操作(
Sum(Max(Fields!flg1.Value,"bid"))
) -
求和渲染值。为此,请检查包含所需数据的单元格的名称(检查其属性),然后使用类似
=SUM(ReportItems!flg1.Value)
的名称,其中flg1
是文本框的名称,不一定总是相同的名称作为字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。