首页 > 解决方案 > SSRS - 总和最后 12 项

问题描述

我有一个 Total 列,并将该行中的所有值相加:

=Sum(Fields!MyField.Value)

我怎样才能只总结最后 12 项?

这是有效的:

=Last(Fields!MyField.Value)

我需要类似下面的东西......

=Sum( LastX(Fields!MyField.Value, 12) )

标签: reporting-services

解决方案


您可以通过在主数据集查询中创建子查询来实现此结果。您只需要有一个要按降序排序的值。

假设您有一张按 ASC 顺序按价格排序的表格。您想对最后 12 个求和。您只需要在子查询中翻转排序并对前 12 个求和即可。

SELECT OtherFields, (SELECT TOP 12 Sum(S1.MyField) FROM MyTable S1 ORDER BY S1.MyField DESC) AS BottomTwelveSum
FROM MyMainQueryTable

是的,此值将在您的数据集中重复,但是如果您将其正确放置在表中,您应该没问题,只是不要在详细信息部分显示该值。这不会添加额外的行。另一种解决方案是使用子报表,但是这在渲染时间上要快得多。


推荐阅读