如何在SSRS报告中显示每组末尾的前10名?

时间:2016-08-29 22:28:43

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

首先按部门分组,然后由部门进行分类。它按每个部门的总成本再次排序。我应该显示每个部门的单位和成本总额。仅应显示10个条形码的总数。它显示总数,但显示该部门内存在的所有条形码的总数。例如:部门A的总单位应该是19,但它显示57,因为部门A中有超过10个条形码。我试过,如图所示,前N个  enter image description here

尝试了RunningValue,但它让我跑完了。我需要分别为每个部门提供总数。

     =RunningValue(Fields!Units.Value, Sum, Nothing)

我也看了类似的问题,但没有奏效。How to get total of top 10 sales in SSRS 2012。 这是我目前的输出:

enter image description here

输出应为:

对于部门A:总单位应为19,总成本应为:144.40

对于部门B:总单位应为378,总费用应为:6097.70

以下是我的设计视图:使用以下内容进行汇总:

 =Sum(Fields!units.Value)
 =Sum(Fields!totalcost.Value)

enter image description here

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以使用TOP N来显示部门

的show top 10记录 部门A中的

Sum()显示57,因为它总结了所有部门的行(超过10条记录)

我建议您使用Query为每个部门选择仅10条记录,如下面的代码

SELECT q.Dept
    ,q.Barcode 
    ,q.Unit
    ,q.TotalCost
FROM (
    SELECT t.Dept
        ,t.Barcode 
        ,t.Unit
        ,t.TotalCost
        ,DENSE_RANK() OVER (PARTITION BY t.Dept ORDER BY t.TotalCost) AS [r] 
    FROM YourTables t
) q 
WHERE q.r BETWEEN 1 AND 10

答案 1 :(得分:1)

假设您的源查询正确,您的表摘要也是正确的。由于您的“设备明细”字段中有[units]而不是[sum(units)],因此您只显示该组值的第一行。更改此表达式,您的表格将正确加起来。

我建议你在假设某些事情出现错误之前先查看源数据。如果您的源数据没有手动累加到您期望的值,则源数据错误或您的期望错误。