[英]SQL Report Builder: how to use functionality of WHERE clause inside SSRS?
我需要能夠進行計算,得到每加侖美分的價值。 這可以通過 PRICE / GALLONS = CPG 輕松實現。
由於我顯然不能在報告表達式功能中使用實際的 WHERE 子句,因此我能找到的最接近的是使用 IIF() function。 但是,我並沒有完全得到我想看到的東西。
這是表達式:
=IIF(Fields!gallons.Value=0,"-", Fields!GP.Value/Fields!gallons.Value)
如您所見,該報告適用於加侖值不為零的值。 但是當涉及到零的位置時,我得到了可怕的#Error
。
我該如何處理零? 可能需要注意的是,我無法事先過濾掉 SQL 查詢中的零,因為相關列必須存在於其他計算中。
SSRS 嘗試評估 iif 條件的兩側。 因此,如果分子或分母為 0,則會出現錯誤!
如果其中一個值為 0,您需要做的是使用 function 返回 0。
Go 報告屬性 -> 代碼然后將以下代碼粘貼到其中自定義代碼部分
' Fix for divide by zero problem in VB
Public Shared Function VarPercent(ByVal Standard As Decimal, ByVal Actual As Decimal) As Decimal
If Actual = 0 Then
Return 0
End If
If Standard = 0 Then
Return 0
End If
Return (Standard / Actual )
End Function
否在您的報告中,無論您在哪里划分兩個值,請使用以下內容:
=Code.VarPercent(Fields!GP.Value,Fields!gallons.Value)
SSRS就是那樣愚蠢。 無論如何,您必須修復除以零:
=IIF(Fields!gallons.Value = 0,"-",
Fields!GP.Value / IIF(Fields!gallons.Value = 0 , 1, Fields!gallons.Value))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.