我在使用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参数必须设置为一个字符串常量,该常量等于包含组的名称,包含数据区域的名称或数据集的名称。
有没有人对如何解决这个问题有任何建议?
答案 0 :(得分:0)
根据显示的数据,我希望内部组显示AmountReceived的总和为$ 800.00,因为有4行,每行有ReceiptID 1和AmountReceived $ 200.00。
这表明您要么显示AmountReceived的值,要么显示内部组中AmountApplied的总和。如果AmountApplied总是加起来AmountReceived,那么在外部组中显示这个的最简单方法是使用AmountApplied的总和。
答案 1 :(得分:0)
你确定你在sum函数的范围内得到了内部组的名称吗?它需要用双引号字符(“)括起来,并且需要匹配组的报告名称,通常类似于table1_Group2,默认情况下 - 尝试编辑组,进行检查。