在 SSRS 設計報表時,常會遇到空值的問題,為了美觀或使用者閱讀,會將空值欄位補零。在一般的 SQL 語法查詢可以使用以下方式來補零
SQL : Select ProductName, IsNull(SaleAmount, 0) From OrderDetail
Oracle : Select ProductName, Decode(SaleAmount,null,0)
但在 SSRS 的矩陣物件中就沒效了!因為 SQL 語法補零是在產生資料集的時候補空值為零,在使用矩陣物件設計報表時,是先產生資料集,然後將資料集套在矩陣物件中,當行列交錯未產生值時,才會發生空值,所以使用 SQL 語法,是無法解決矩陣物件中空值補零的問題。
若是未做彙總的詳細資料時 ( 通常是出現在資料表物件中 ),可使用以下的運算式
= IIF(Fields!SALES_AMT.Value is Nothig , 0 , Fields!SALES_AMT.Value)
若儲存格有經過彙總的時,可使用以下運算式
= IIF(Count(Fields!SALES_AMT.Value) = 0 , 0 , Sum(Fields!SALES_AMT.Value))
= IIF(Sum(Fields!SALES_AMT.Value) = 0 , 0 , Sum(Fields!SALES_AMT.Value))
當在計算比率時,為了避免除與零的錯誤,會使用以下運算式,將分母為零的狀況修正
= IIF (分母 = 0 , 0 ,分子 / 分母)
沒有留言:
張貼留言