[英]SSRS parameter in WHERE
我認為這很簡單,但我無法找到一種有效的方法。
基本上我想通過輸入的參數,WHERE子句中的IE來進行報告搜索。
例如,下面的參數是@ColumnName和@SearchTerm
SELECT
OITM.[ItemCode] AS [Item Code],
OITM.[ItemName] AS [Item Name],
OITM.[FrgnName] AS [Merchandise Type],
OITM.[OnHand] AS [In Stock],
OITM.[IsCommited] AS [Customer Reserved],
OITM.[Onorder] AS [On Order],
OITW.[AvgPrice] AS [Cost]
FROM OITW
INNER JOIN OITM ON OITM.[ItemCode] = OITW.[ItemCode]
WHERE
OITM.(@ColumnName) LIKE '%(@SearchTerm)%'
這一定是可能的嗎? 非常感謝。
我並不總是喜歡鼓勵使用動態SQL,但以下內容將完成您要完成的任務。
DECLARE @ColumnName varchar(10) = 'ItemName', @SearchTerm varchar(5) = 'pat', @sql varchar(1000) = ''
SELECT @sql = 'SELECT
OITM.[ItemCode] AS [Item Code],
OITM.[ItemName] AS [Item Name],
OITM.[FrgnName] AS [Merchandise Type],
OITM.[OnHand] AS [In Stock],
OITM.[IsCommited] AS [Customer Reserved],
OITM.[Onorder] AS [On Order],
OITW.[AvgPrice] AS [Cost]
FROM OITW
INNER JOIN OITM ON OITM.[ItemCode] = OITW.[ItemCode]
WHERE OITM.' + @ColumnName + ' LIKE ''%' + @SearchTerm + '%'''
EXEC (@sql)
以下是我如何真正做到這一點,但你可能有理由不想這樣做。 由你決定。
SELECT
OITM.[ItemCode] AS [Item Code],
OITM.[ItemName] AS [Item Name],
OITM.[FrgnName] AS [Merchandise Type],
OITM.[OnHand] AS [In Stock],
OITM.[IsCommited] AS [Customer Reserved],
OITM.[Onorder] AS [On Order],
OITW.[AvgPrice] AS [Cost]
FROM OITW
INNER JOIN OITM ON OITM.[ItemCode] = OITW.[ItemCode]
WHERE (OITM.ItemName LIKE '%' + @SearchTerm + '%'
OR OITM.FrgnName LIKE '%' + @SearchTerm + '%')...
祝好運!
嘗試這個:
SELECT
OITM.[ItemCode] AS [Item Code],
OITM.[ItemName] AS [Item Name],
OITM.[FrgnName] AS [Merchandise Type],
OITM.[OnHand] AS [In Stock],
OITM.[IsCommited] AS [Customer Reserved],
OITM.[Onorder] AS [On Order],
OITW.[AvgPrice] AS [Cost]
FROM OITW
INNER JOIN OITM ON OITM.[ItemCode] = OITW.[ItemCode]
WHERE
OITM.(@ColumnName) LIKE '%' + @SearchTerm + '%'
請注意,您的參數必須是文本類型。
如果這有幫助,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.