如何使用我已分组的SSRS TABLIX中的数据列计算百分比

时间:2017-11-09 05:25:14

标签: sql-server reporting-services ssrs-tablix

我有一个SQL查询,它为我提供了一个包含3列的数据集:

  • 合同代码
  • MonthRegistered

SQL Result Set

我想通过Contract_Code和MonthRegistered列显示按行分组的数据: Tablix layout

然后,我想计算月份之间的百分比差异: Sample Output

在这种情况下,我只会有2个月的数据 - 相隔1年。 我试图表达每行数据从一年到下一年的百分比变化。

我做了这个表达:

=(Fields!Volume.Value)/(Fields!Volume.Value)

但是很明显它不对 - 它是如何不对的是它没有独立地处理列。

我确实将TABLIX文本框格式化为一个百分比,所以至少我认为这一个。

在此Technet文章中:Calculating Totals and Other Aggregates (Reporting Services)它声明:You can also write your own expressions to calculate aggregate values for one scope relative to another scope.我无法找到有关如何处理单独范围的参考。

我很感激有关这一点的任何指示!

很抱歉将我的示例发布为JPG而不是实际文本,但我需要隐藏一些数据......

1 个答案:

答案 0 :(得分:1)

这只能起作用,因为您只需要两个月的数据来比较。您必须确保您的SQL已经由MonthRegistered订购。如果您没有在查询中订购,则将应用SSRS自己的排序来确定哪个值是第一个和最后一个。

=First(Fields!Volume.Value) / Last(Fields!Volume.Value)  

因为您已在SSRS中执行了聚合,所以您可能必须将每个语句包装在SUM表达式中  如果您只打算以这种方式显示它,那么建议尽可能在SQL中执行聚合。