【问题标题】:Create group subtotals for columns with conditional sums of other columns in SSRS 2008为具有 SSRS 2008 中其他列的条件总和的列创建组小计
【发布时间】:2018-01-31 17:04:53
【问题描述】:

这将很难解释,也很难找到答案。

我的数据集包含员工工单的信息,包括估计成本以及基于已完成任务的实际成本。查询看起来像

Employee  WorkOrder  Planned  Task  Actual
John      j101       500      1     300
John      j101       500      2     300
John      J102       500      1     100
John      j101       500      2     200
Chris     C201       300      1     150
Chris     C201       300      2     150
Chris     C202       400      1     200
Chris     C202       400      2     100
Chris     C202       400      3     100
Chris     C202       400      4     100

我正在尝试创建一个类似于以下内容的报告:

每个工作订单在标题级别都有一个估计成本,该成本会与其任务的实际成本总和进行比较。 “预期成本”列取计划成本和实际成本总和的最大值。

这个表达式可以正常工作并且看起来像

IIf(Fields!PlannedCost.Value >= Sum(Fields!TaskActualCost.Value),
           Fields!PlannedCost.Value,Sum(Fields!TaskActualCost.Value))

我现在必须按员工对这些预期成本进行小计,然后对整个数据集进行总计。

我一直在尝试将该 IIF 包装在另一个 SUM 表达式中,但它给我的值远远高于它应有的值。我在某处(找不到链接)读到我必须使用范围来计算总和,但这没有帮助。

我尝试了以下,但该值仍然比应有的高 3-4 倍

Sum(
    IIf(Fields!PlannedCost.Value >= Sum(Fields!TaskActualCost.Value, "table1_Details_Group"), 
        Fields!PlannedCost.Value,
        Sum(Fields!TaskActualCost.Value, "table1_Details_Group")
        )
    )

完成此任务的最佳方法是什么?我希望我只是缺少一些简单的东西,因为这看起来应该相当简单。

【问题讨论】:

    标签: sql-server reporting-services ssrs-2008


    【解决方案1】:

    this blog post的帮助下终于解决了问题

    我原以为是我的任务 SUM 表达式导致了问题,但实际上是 PlannedCost 列。当我将它包装在另一个 SUM 中时,它会为数据中的每一行计算它,这现在看起来很明显。

    无论如何,工单小计保持不变。

    Employee 小计改为(注意“Max”函数

    =FormatCurrency(
    Sum(
        IIf(Max(Fields!PlannedCost.Value,"table1_WONum") >= Sum(Fields!TaskActualCost.Value, "table1_WONum"), 
                Max(Fields!PlannedCost.Value,"table1_WONum"),
                Sum(Fields!TaskActualCost.Value, "table1_WONum")
            )
        )
    ,2)
    

    总计表达式与员工小计相同。

    希望这对将来的其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多