【问题标题】:ReportItems Sums by GroupingReportItems 按分组求和
【发布时间】:2023-04-10 06:46:02
【问题描述】:

我有这样的数据 Original Data

我打算像这样创建输出 Output

我已经用这样的借方表达式制作了 SSRS

=IIF(SUM(Fields!Amount.Value)>0,SUM(Fields!Amount.Value),0)

像这样赊账

=IIF(SUM(Fields!Amount.Value)<0,SUM(Fields!Amount.Value),0)

我遇到的问题是我不知道如何合计借方和贷方列上的报告项目。 我试过这个表达式来合计借方和贷方

=SUM(ReportItems!DebitColumn.Value) =SUM(ReportItems!CreditColumn.Value)

结果是错误的。是否有一个表达式或什么东西可以合计每个 A 组的那些债务和信用列?

【问题讨论】:

    标签: reporting-services ssrs-2008 ssrs-2012 ssrs-tablix


    【解决方案1】:

    我会在 SQL 中做一些这样的工作,这将使报告变得简单。

    我首先重新创建您的示例数据并按如下方式聚合...

    DECLARE @t TABLE (Group1 char(1), Group2 int, Amount float)
    INSERT INTO @t VALUES
    ('A', 1, 1000),('A', 1, -500),('A', 1, -250),('A', 1, -500),
    ('A', 1, 100),('A', 2, 200),('A', 2, -500),('A', 2, -200),
    ('A', 2, 400),('A', 2, 200),('A', 3, -50),('A', 3, 0)
    
    SELECT Group1, Group2, SUM(Amount) AS Amount
    FROM @t
        GROUP BY Group1, Group2
    

    然后我在报告中添加了一个矩阵,其中包含来自Group1Group2 的行组。

    我使用以下表达式添加了一个列分组。

    =IIF(Fields!Amount.Value >0, "Debit", "Credit")
    

    我将列组排序更改为使用与顺序相同的表达式Z to A

    最后,我还将列标题表达式设置为相同的表达式。

    然后我将总计添加到 Group1 行组。

    最终输出如下所示。

    【讨论】:

      【解决方案2】:

      首先使用以下查询修改您的数据集:

      SELECT        [Group 1], [Group 2], SUM(Amount) AS Amount
      FROM            Table_3
      GROUP BY [Group 1], [Group 2]
      

      然后使用以下表达式将标记为“文本”的计算字段添加到数据集中:

      =IIF(Fields!Amount.Value > 0 , "Debit","Credit")
      

      接下来创建一个矩阵,其中第 1 组和第 2 组是相邻的行组,文本字段是您的列组。将金额字段拖到列组中,此字段不需要聚合,因为它已经由您的 SQL 查询聚合。此列组的标题标签将是文本字段。

      【讨论】:

        猜你喜欢
        • 2020-09-16
        • 1970-01-01
        • 1970-01-01
        • 2017-02-14
        • 2020-10-07
        • 1970-01-01
        • 2019-12-21
        • 2019-04-10
        • 1970-01-01
        相关资源
        最近更新 更多