Sql-Server

SQL Server Reporting Services 中的虛擬比較數據 - 如何刪除它?

  • January 9, 2016

我正在嘗試編寫一個查詢,該查詢將允許我根據傳入的參數是否設置為 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 是整數類型。

引用自:https://dba.stackexchange.com/questions/125715