我想對平均情況給出3個月。SSRS AVG IIF顯示與我的SUM IIF不同的值除以數字(具有日期範圍)
假設我有這樣的
**Month** | **Cases**
January 2017 | 3981
February 2017 | 3402
March 2017 | 3683
April 2017 | 2920
下面一個數據是一個示例代碼:
=Sum(IIF(CDate(Fields!ServiceYrMnth.Value) >=
DateAdd(DateInterval.Month, -3, CDate(Parameters!Period.Value))
And CDate(Fields!ServiceYrMnth.Value) <=
DateAdd(DateInterval.Month, -1, CDate(Parameters!Period.Value)),
Fields!Total_Cases.Value, 0))/3
這是工作和SSRS給予正確的價值觀。
因此,通過使用這種代碼,參數週期等於2017年4月,平均將被計算像
DateAdd(DateInterval.Month, -3, CDate(Parameters!Period.Value)) = Jan2017
DateAdd(DateInterval.Month, -2, CDate(Parameters!Period.Value)) = Feb2017
DateAdd(DateInterval.Month, -1, CDate(Parameters!Period.Value)) = Mar2017
Total Cases = (3981 + 3402 + 3683)/3 = 3689
我的問題是,這並沒有考慮到空值。所以,就像當只有2個可用值,總和仍然會除以3而不是2.
所以我決定試試這個代碼:
=Avg(IIF(CDate(Fields!ServiceYrMnth.Value) >=
DateAdd(DateInterval.Month, -3, CDate(Parameters!Period.Value))
And CDate(Fields!ServiceYrMnth.Value) <=
DateAdd(DateInterval.Month, -1, CDate(Parameters!Period.Value)),
Fields!Total_Cases.Value, Nothing))
我現在的問題是,它不顯示與我爲總和除以3所得到的代碼相同的值。通過運行此代碼,它將顯示平均值等於,我不知道它來自哪裏。
請幫幫我。我現在在這個問題上陷入了一個星期。
SSRS函數'AVG'在計算時將忽略任何NULL/Nothing值,所以這應該給你你想要的。你可以編輯你的問題,並從數據集中發佈一個數據樣本,說明問題以及你目前得到的結果和你的期望。 –
請檢查最新的帖子。 – heneral
我無法重現這一點,它對我來說非常合適。我會馬上添加一個答案,以便您可以看到我所做的和結果。 –