【问题标题】:Error in finding sum of a group and Conditional Summing in SSRS Reports在 SSRS 报告中查找组的总和和条件求和时出错
【发布时间】:2013-08-28 06:27:12
【问题描述】:

我有一个 SSRS 报告,在数据库中有一个名称为 Total_running_hours 的列。 单个 Cycle_number 有多个记录,例如多个具有相同 Cycle_number 但不同 Block_numbers 的行,并且 Total_running_hours 字段中的值对于具有相同 Cycle_number 的所有行将相同。
例如。具有 4 个差异 block_numbers 的 1 个循环编号包含所有 4 行的相同 Total_running_hours

现在的问题是,如果我在组页脚中放置此字段,那么它只会显示一次 Total_running_hours 值,这是正确的,但我的最终要求是,

我需要在报告页脚中获取此字段的总和,这需要明智地显示总和组。无论单个Cycle_number 有多少行,它只需要一次并显示结果。

我尝试了不同的方式,比如

=sum(ReportItems!textbox204.Value) // name of text box in Group footer

错误:报表项表达式只能引用其他报表项 在同一分组范围或包含分组范围内。

=sum(Fields!total_running_hours.Value,Group_name) 

错误:范围参数必须设置为一个字符串常量,即 等于包含组的名称, 包含数据区域,或数据集的名称。

任何人都可以帮我在集团明智的情况下获得总和

提前谢谢你。

【问题讨论】:

    标签: reporting-services ssrs-2008 ssrs-grouping


    【解决方案1】:

    我找到了这个问题的解决方案。

    我们不能简单地将 Total_Running_hours 值相加,因为这会给我们重复和错误的答案。我们无法汇总报告服务组,因为它超出了范围 Reporting Services 2005 中没有可用的 SUM DISTINCT,因此我们无法通过这种方式获得不同的值。

    由于查询可能不会返回特定的 Cycle_Number 类型,我们不能将其用作过滤器。

    找到的解决方案是在这样由 Cycle_Number 分区的窗口集中添加行号列

    ROW_NUMBER() OVER (PARTITION BY Cycle_Number ORDER BY Cycle_Number ) AS 'RowNumber'

    然后,我们在报表的页脚总计列中放置一个表达式,该表达式仅将第一行的值求和,并将该窗口集中的所有其他行转换为零。

    =SUM(IIF(Fields!RowNumber.Value=1,Fields!Total_Running_hours.Value,0))

    如果你在文本框中发现任何错误,比如#Error

    那就试试这个

    =SUM(IIF(Fields!RowNumber.Value=1,CDbl(Fields!Total_Running_hours.Value),CDbl(0.0)))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 2013-06-06
      • 2018-11-25
      相关资源
      最近更新 更多