Sql-Server

帶有 Like 語句的 SSRS 參數的多個值

  • February 18, 2020

在 SSRS 中,我有一個名為的參數Comment,我將其設置為Allow multiple values

在此處輸入圖像描述

並為其指定可用值。

在此處輸入圖像描述

我的問題是,如果我選擇一個值,我會得到結果,但如果我選擇多個,我會得到一個錯誤。

在此處輸入圖像描述

問題可能是因為我這樣寫了我的 SQL 語句:

dbo.tbl_Status.Comments LIKE ('%' + @Comment + '%')

注意:我需要使用LIKE而不是IN

您需要在表達式中更改查詢並使用JOIN參數值上的表達式連接條件。

例如,如果您基於 Adventureworks 2014 數據庫創建報告,您可以添加如下參數:

在此處輸入圖像描述

使用表中出現的一些值:

在此處輸入圖像描述

如果您隨後輸入數據集的表達式而不是這樣的查詢:

="SELECT "
&     "[NationalIDNumber],"
&      "[JobTitle]"
&"FROM [AdventureWorks2014].[HumanResources].[Employee]"
&"WHERE [JobTitle] LIKE '%" & Join(Parameters!jobtitle.Label, "%' OR [JobTitle] LIKE '%") & "%'"

選擇單個值時,它會產生您想要的結果:

在此處輸入圖像描述

因為連接的表達式是這樣的:

SELECT [NationalIDNumber]
   ,[JobTitle]
FROM [AdventureWorks2014].[HumanResources].[Employee]
WHERE [JobTitle] LIKE '%Engineer%'

當您選擇多個值時它也可以工作:

在此處輸入圖像描述

因為表達式會導致:

SELECT [NationalIDNumber]
   ,[JobTitle]
FROM [AdventureWorks2014].[HumanResources].[Employee]
WHERE [JobTitle] LIKE '%Engineer%'
   OR [JobTitle] LIKE '%Marketing%'

完整的 .RDL 文件可以在Github Gist上找到,並且需要本地 Adventureworks 2014 數據庫。

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