2014-01-29 69 views
0

-SSRS - 我想爲計算添加過濾的表達式

我想添加一個表達式,並根據某個值計算一個值。我有一個名爲DSSPend的數據集,第一列是Area和其他開支。現在我想根據某些面積值來計算支出。 我想是這樣的,但似乎並沒有工作

=Iif((Fields!Area.Value, "DSSSpend") IN ('New York','Miami','Texas') = SUM(Fields!Spend.Value, "DSSSpend"), 0) 

回答

2
=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相加。

更新:如果您之前收到錯誤,可能是因爲它沒有將您的金額視爲數字。通過明確地轉換它們,你應該解決這個問題。

+0

嗨感謝您的回覆,但我按照建議運行此查詢時出現錯誤。我已經確定我的面積值完全符合規定並拼寫正確。 – user1546143

+0

什麼是錯誤?這是你需要得到正確答案的模式,所以你需要發佈更多的信息,以便我能夠分辨出什麼是錯的。 – mmarie

+0

@ user1546143該問題可能是由於數據類型。我在上面的表達式中添加了CDec(),它對我的​​測試數據正常工作。如果你需要整數而不是十進制,則將它更改爲CInt。 – mmarie