有没有一种方法可以根据SSRS中选定的年份参数来比较年份总数?

时间:2019-04-25 08:24:26

标签: sql sql-server reporting-services report

背景如下:

  • 我有一个脚本,可将每月汇总的数据加载到表中
  • 我使用“报告”构建器从该表中读取数据以制作报告
  • 报告使用多值“ year”参数

到目前为止,一切都像魅力一样

问题:
管理层希望看到年度总计之间的比较。
示例:如果用户选择了2018年和2017年,则报告应显示2018年和2017年的所有数据(到目前为止,可以)+年总数之间的百分比值(增长)
表格设置中是否可以显示此选项?
或者
如何编写引用2018年和2017年等的“入站呼叫”总数的表达式?

我最初的解决方法是,我使用一个值参数,然后配置了2个不同的数据集,其中1个用于选定的年份,一个用于选定的年份-1 这使得比较值变得容易

enter image description here

简而言之:

如何使用表达式或某些内置函数将年份参数1合计除以年份参数2合计?

1 个答案:

答案 0 :(得分:0)

是的,您可以在SSRS中执行此操作,但这可能不是解决问题的最佳方法。我模拟了一个简单的示例,基本上我创建了两个数据集:

  • DS2016-2016年总计;
  • DS2017-2017年总计。

我可以显示类别列表以及来自DS2017数据集的总利润,并将它们添加到Tablix中。然后,我可以插入一个新的计算列以将值与2016年进行比较,其中公式如下所示:

=Sum(Fields!total.Value, "DS2017") * 100 / Sum(Fields!total.Value, "DS2016")

这里的窍门是利用“ scope”(至少我认为这是所谓的)参数来说明要使用的数据集,否则它将默认为您为Tablix选择的数据集。

现在我可以运行我的报告,查看2016年以来的增长情况。

但是,最好建议您返回原始SQL查询,并进行更改以为您完成工作。这将比让SSRS承担所有繁重的工作要快得多。