2016-08-11 104 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字段。 並對這些字段進行總結。 也許你會贏得時間:因爲數據庫服務器將完成作業而不是報表服務器。