2016-08-11 69 views
0

我正在创建基于存储过程的SSRS报告;该过程根据用户输入参数(例如201604)的月份在过去六个月内调用数据。目前我有这些数据进入矩阵,并且随着这六个月的报告需要有一个最新的与前一个月的差异列(例如201604与201603)SSRS矩阵差异列 - 报告运行缓慢

现在我有一个公式它使用我在存储过程中创建的列来指定某行所在的月份是CURRENT,PRIOR还是NONE,如果它未在计算中使用。

=SUM(IIF(Fields!VarHelper.Value = "CURRENT",1,0) * Fields!stock_value.Value 
    - 
    IIF(Fields!VarHelper.Value = "PRIOR",1,0) * Fields!stock_value.Value) 

我在报告中三个地方/电池使用这个公式,以及由于某种原因造成的报告运行非常缓慢(约45秒运行)。如果报告中没有这些方差公式,它几乎可以即时运行。

有人能够:a)推荐一种更好的方法来计算矩阵中最近两个月之间的差异,或者b)。至少能够揭示为什么这可能会影响报告绩效?

预先感谢您!

回答

0

尝试报告查询中的计算结果。 两种可能的方式:如果你做了一个SQL查询:在选择。 或者,在数据集中添加calculated字段。 并对这些字段进行总结。 也许你会赢得时间:因为数据库服务器将完成作业而不是报表服务器。