【问题标题】:How to display top 10 at the end of each group in SSRS report?如何在 SSRS 报告的每组末尾显示前 10 名?
【发布时间】:2016-08-29 22:28:43
【问题描述】:

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

尝试了 RunningValue,但它给了我运行总数。我需要分别为每个部门提供总计。

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

我也看过类似的问题,但没有工作。How to get total of top 10 sales in SSRS 2012。 这是我当前的输出:

输出应该是:

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

对于 B 部门:总单位数应为 378,总成本应为:6097.70

这是我的设计视图:使用以下聚合:

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

【问题讨论】:

  • 您可以在设计视图中添加表格的屏幕截图吗?我认为您没有汇总每个条形码的值,这让您感到困惑。
  • 您的表格设计截图与上面的两个公式不匹配。 Total Cost 可能是正确的,但是您可以在 Units 详细信息行中看到文本 [units],您肯定没有使用那里发布的公式:imgur.com/kYzr1fd

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


【解决方案1】:

如果我理解正确,您使用TOP N 为部门显示top 10 记录

和部门 A 中的 Sum() 显示 57,因为它是部门所有行的总和(超过 10 条记录)

我建议您使用查询为每个部门只选择 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

【讨论】:

  • 是的,Chanom 是正确的,但我无法更改查询。我们有一个通用的 StoredProcedure,我们调用它来为所有客户端查询数据。我只需要修改这个特定客户的报告。如果我更改查询,它将弄乱其他客户的报告。
  • @Everest - 您能否发布使用 StoreProcedure 获得的示例数据和使用 DataSet 中的 Query 获得的图像
  • 对不起,数据和过程来自真实的客户。无法发布,但我们成功了。请检查上面的评论。不过谢谢。
【解决方案2】:

假设您的源查询是正确的,那么您的表格摘要也是正确的。因为您的单位详细信息字段中有[units] 而不是[sum(units)],所以您只显示组值的第一行。更改此表达式,您的表格将正确添加。

我建议您先查看源数据,然后再假设有问题或没有问题。如果您的源数据未手动添加到您期望的值,则可能是源数据错误或您的期望错误。

【讨论】:

  • 源查询正在返回正确的数据。每行的单位和总计单位都很好。我在每个部门底部的总计有问题:我只需要显示上面报告中显示的所有行的总计。
  • @Everest 我可以向您保证,您的个人units 值是一行的值,而不是全部来自该组。当您将 [units] 更改为 [sum(units)] 时,您的桌子会发生什么情况?
  • @Everest 如果是这种情况,那么您的源数据可能有问题,或者您没有完全解释表背后的逻辑。我创建了一个每组多行的测试表,当在过滤器中使用时,它正确总结了前 10 行,所以我 100% 确信您在报告中执行其他操作,因为 SSRS 中的功能在正确完成。您有机会将报告文件上传到某个地方吗?
  • 这是一份大报告,数据和专栏来自真实客户,所以无法发布所有内容。我的同事在自定义代码的帮助下使它工作。它基本上遍历您在行上看到的数据,并在每个部门的末尾累积并显示总计。最后,它还将总计重置为零,因此运行总计不会继续到下一个部门。它对所有部门都是一样的。感谢您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多