报告服务外部集团内部集团总和

时间:2010-06-16 14:45:50

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

我在使用ASP.net 3.5和SQL Server 2008的Reporting Services 2008中有一个报告。该报告有2个分组和一个详细信息行。

这是目前的格式:

Outer Group
     Inner Group
          Detail Row

详细信息行表示收据上的项目,收据可以包含多个项目。每张收据均以特定付款方式支付。因此,外部组按付款类型分组,内部组按收据的ID分组,详细信息行是给定收据的每个项目。

我的原始数据结果集有两个重要的列:收到的金额和应用的金额。收到的金额是收据上所有物品的总收入金额。应用金额是每件物品从收到的总金额中获得多少钱。

示例结果集:

ReceiptID     Item     ItemID          AmountReceived     AmountApplied     Payment Method
------------------------------------------------------------------------------------------
1             Book     1               $200.00            $40.00            Cash
1             CD       2               $200.00            $20.00            Cash
1             Software 3               $200.00            $100.00           Cash
1             Backpack 4               $200.00            $40.00            Cash

内部组正确显示AmountReceived为$ 200。但是,外部组显示AmountReceived为$ 800,因为我相信它会关闭每个细节行,在这种情况下是4个项目的数量。

我想要的是在外集团看到收到的金额是200美元。我尝试将SUM函数中的范围限制为内部组,但是我得到了错误

  

scope参数必须设置为一个字符串常量,该常量等于包含组的名称,包含数据区域的名称或数据集的名称。

有没有人对如何解决这个问题有任何建议?

2 个答案:

答案 0 :(得分:0)

根据显示的数据,我希望内部组显示AmountReceived的总和为$ 800.00,因为有4行,每行有ReceiptID 1和AmountReceived $ 200.00。

这表明您要么显示AmountReceived的值,要么显示内部组中AmountApplied的总和。如果AmountApplied总是加起来AmountReceived,那么在外部组中显示这个的最简单方法是使用AmountApplied的总和。

答案 1 :(得分:0)

你确定你在sum函数的范围内得到了内部组的名称吗?它需要用双引号字符(“)括起来,并且需要匹配组的报告名称,通常类似于table1_Group2,默认情况下 - 尝试编辑组,进行检查。