首页 > 解决方案 > SSRS 2016 - 如何计算组中两个值之间的百分比差异?

问题描述

我正在创建一个报告,显示日期范围之前和日期范围之后的商品销售情况。

我遇到麻烦的部分是日期 1 和日期 2 的总销售额之间的百分比差异。

商品在某一周内可能没有销售。用户可以在项目 ID 参数中选择多个项目 ID。

如果需要,我可以更新问题以发布我的 SQL 查询。

我试过的

因为我在项目 ID 上放置了一个组,所以我认为FirstandLast函数可以工作。

这是我在 PCT 列上的表达。

=(Last(Fields!total_sales1.Value, "Date1")- First(Fields!total_sales1.Value, "Date1")) / First(Fields!total_sales1.Value, "Date1") * 100

但是当我运行报告时,我得到以下结果。

在此处输入图像描述

我需要一个 PCT 列上的表达式,它会给我每个项目对的百分比差异。

标签: reporting-servicesssrs-groupingssrs-2016

解决方案


看来您的范围不正确。检查按项目 id 分组的行组名称(假设行组称为“yourItemRowGroupName”)。

然后更改您的表达式以使用该范围而不是“Date1”。

实际上,您可能根本不需要范围,因为它应该在表达式所在的范围内工作(在您的情况下,在您的 ItemID 组内。)。

所以试试

=(Last(Fields!total_sales1.Value)- First(Fields!total_sales1.Value)) / First(Fields!total_sales1.Value) * 100

或者..

=(Last(Fields!total_sales1.Value, "yourItemRowGroupName")- First(Fields!total_sales1.Value, "yourItemRowGroupName")) / First(Fields!total_sales1.Value, "yourItemRowGroupName") * 100

您可能必须处理除以零,但在添加更多复杂情况之前先尝试此操作。


推荐阅读