0
我想添加一個表達式,並根據某個值計算一個值。我有一個名爲DSSPend的數據集,第一列是Area和其他開支。現在我想根據某些面積值來計算支出。 我想是這樣的,但似乎並沒有工作
=Iif((Fields!Area.Value, "DSSSpend") IN ('New York','Miami','Texas') = SUM(Fields!Spend.Value, "DSSSpend"), 0)
我想添加一個表達式,並根據某個值計算一個值。我有一個名爲DSSPend的數據集,第一列是Area和其他開支。現在我想根據某些面積值來計算支出。 我想是這樣的,但似乎並沒有工作
=Iif((Fields!Area.Value, "DSSSpend") IN ('New York','Miami','Texas') = SUM(Fields!Spend.Value, "DSSSpend"), 0)
=sum(iif((Fields!Area.Value = "New York" or Fields!Area.Value = "Miami" or Fields!Area.Value = "Texas"),
CDec(Fields!Spend.Value), CDec(0)))
有一個在SSRS表達無IN操作符。您可以通過使用OR來實現相同的目標。
另外,您的SUM彙總需要在IIF之外。您的表達式將僅評估第一條記錄,而不是遍歷數據集中的每條記錄,然後進行聚合。上面我寫的表達式貫穿整個數據集,根據區域的值將Spend字段中的值或0相加。
更新:如果您之前收到錯誤,可能是因爲它沒有將您的金額視爲數字。通過明確地轉換它們,你應該解決這個問題。
嗨感謝您的回覆,但我按照建議運行此查詢時出現錯誤。我已經確定我的面積值完全符合規定並拼寫正確。 – user1546143
什麼是錯誤?這是你需要得到正確答案的模式,所以你需要發佈更多的信息,以便我能夠分辨出什麼是錯的。 – mmarie
@ user1546143該問題可能是由於數據類型。我在上面的表達式中添加了CDec(),它對我的測試數據正常工作。如果你需要整數而不是十進制,則將它更改爲CInt。 – mmarie