Sql-Server
SQL Server Reporting Services 中的虛擬比較數據 - 如何刪除它?
我正在嘗試編寫一個查詢,該查詢將允許我根據傳入的參數是否設置為 true 或 false 在 where 語句中包含或排除過濾器。到目前為止,我的聲明是
IF @IncludeAttended = 'true' begin SELECT id, fullName, Address, PhoneNumber, NeverAttended FROM Guests_View WHERE (GroupID = @groupid) end else begin SELECT id, fullName, Address, PhoneNumber, NeverAttended FROM Guests_View WHERE (GroupID = @groupid) AND NeverAttended = 'false' end
所以我試圖根據客人是否參加過活動進行過濾。在 Management Studio 中執行上述 SQL 將得到沒有問題的適當結果,但是當我嘗試在 SSRS 中執行它時,我收到一條錯誤消息
Conversion failed when converting the varchar value 'AM13425' to data type int.
我嘗試了幾種不同的語句和方法來查找該字元串的可能位置,但我無法在數據庫中的任何地方找到它,也無法在項目本身的任何地方找到它,據我所知,數據沒有不存在。擦除表格並用新的測試數據重新填充它也無濟於事,消息只是重新出現。此外,如果我取出 @IncludeAttended 參數,並且只執行上述語句的一半(在各種迭代中),我可以得到結果,但我需要這個報告來允許這種過濾。我還能嘗試什麼,在哪裡可以找到導致我出現問題的虛擬數據?
你能檢查一下報告數據集中“id”的數據類型嗎?
也許當使用 NeverAttended = ‘false’ 時,返回的數據是文本數據,而數據集的 Id 是整數類型。