簡體   English   中英

SQL 報表生成器:如何在 SSRS 中使用 WHERE 子句的功能?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM