Reporting services 如何在RDLC中仅对连接数据中的一个重复值求和

Reporting services 如何在RDLC中仅对连接数据中的一个重复值求和,reporting-services,rdlc,sql-server-2019,Reporting Services,Rdlc,Sql Server 2019,我不确定SSRS是愚蠢的,还是愚蠢的(我倾向于两者) 我有一个数据集(作为连接等的结果),它有一些列,每行重复相同的值(相当标准的数据库内容): 基于cnt的报告非常简单。我还可以制作一张显示以下内容的表格: bid flg1 flg2 ------------------ 1 17 3 2 4 9 (其中tablix按字段!bid.Value分组,列分别为字段!flg1.Value和字段!flg2.Value) 我搞不懂的是如何显示这些值的和—

我不确定SSRS是愚蠢的,还是愚蠢的(我倾向于两者)

我有一个数据集(作为连接等的结果),它有一些列,每行重复相同的值(相当标准的数据库内容):

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

bid    flg1   flg2
------------------
1      17     3
2      4      9
(其中tablix按
字段!bid.Value
分组,列分别为
字段!flg1.Value
字段!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
    是文本框的名称,不一定总是与字段的名称相同


  • 有趣的是,
    ReportItems
    不会显示在表达式生成器中。
    bid    flg1   flg2
    ------------------
    1      17     3
    2      4      9