【问题标题】:SSRS/Report Builder - Sum of a field being dependent on a value of anotherSSRS/报表生成器 - 依赖于另一个值的字段的总和
【发布时间】:2013-11-19 19:23:57
【问题描述】:

这就是我想要的:

我的问题是得到最后一个总数。我的数据有从 5000 到 9000 的任务,每个任务都有描述和预算等......

我目前正在根据计算字段中的此表达式进行分组和总计:

Left(CStr(Fields!Task_Code.Value), 2) & "00"

它只是从任务和组中删除最后 2 位数字。所以所有 5100 都有一个小计,所有 5200 等等都有一个小计......

现在我需要对一系列任务进行分组和汇总。所以我需要一个 5100-5900 的组/总数和一个 6200-6500 的组/总数等等。它是任意的,所以我只想提供一个范围,冲洗并重复。我怎样才能做到这一点?下面也是它的截图: 截图中的表达式只是标签的 switch 语句,不是上面的表达式。

【问题讨论】:

  • 我们说的有多随意?每次运行都不一样,每 6 个月不一样?
  • 不像一个完成的设置。生病放在范围内一次,就是这样。我提到这一点只是因为除了我设置一次之外,范围不需要复杂的解决方案。

标签: sql reporting-services expression reportbuilder


【解决方案1】:

根据您的上述数据,我将使用几个计算字段并基于这些应用两个分组。

使用上面的数据(加上几行演示):

我添加了两个计算字段:

=Switch(Left(CStr(Fields!Task_Code.Value), 2) = "51", "Group1"
    , Left(CStr(Fields!Task_Code.Value), 2) = "52", "Group2"
    , Left(CStr(Fields!Task_Code.Value), 2) = "62", "Group3")

位置

=Switch(Fields!Task_Code.Value >= 5100 and Fields!Task_Code.Value <= 5900, "Location1"
    , Fields!Task_Code.Value >= 6200 and Fields!Task_Code.Value <= 6500, "Location2")

对于Location,我假设Task_Code 是基于整数的;如果不是这种情况,您可以随时根据需要使用CInt

我创建了一个表,其中包含一个详细信息组和两个基于计算字段的组:

结果看起来像要求:

【讨论】:

  • 伊恩你摇滚。我的问题是每次我将计算字段添加到共享数据集中时,它都不会显示为可添加到表中的可用字段。
  • 愚蠢的问题,但是当您在报告的本地数据集中单击刷新字段时会发生什么,即对共享数据集的引用?
  • 所以我进入我的共享数据集,添加计算字段,然后单击确定我单击刷新字段,然后单击确定。当我去添加组时,新的计算字段不显示:(
  • 我基本上只是重做了整个报告,然后字段就会显示出来。
猜你喜欢
  • 2021-05-22
  • 1970-01-01
  • 2019-08-27
  • 2019-02-16
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多