SSRS:使用SP时不显示数据集上的字段

时间:2016-02-11 10:38:06

标签: sql-server stored-procedures reporting-services

我有一个连接到SP的数据集,然后我使用这个数据集作为我的参数。但它没有显示字段,所以我有错误。在运行SQL时,我的脚本运行正常。

我有这些参数 ProductDivision, SKUSEARCH(输入关键字的文本框), 和SKU(连接到有问题的数据集的参数)

SP的作用是根据用户在参数中输入的关键字和产品分区参数(多选)过滤SKU上显示的项目,如果用户没有输入任何关键字,只会显示产品部门下的所有项目。

这是我的剧本:

ALTER PROC [dbo].[SP_SKUSEARCH] (@SKUSEARCH NVARCHAR(MAX),@ProductDivision NVARCHAR(MAX))
AS
DECLARE @QUERY NVARCHAR(MAX)
DECLARE @QUERY2 NVARCHAR(MAX)
DECLARE @QUERY3 NVARCHAR(MAX)

IF LEN(@SKUSEARCH)>=1
BEGIN
SET @QUERY = ''
SET @QUERY2 = ''
SET @QUERY3 = ') AND VALID = ''Y'' AND PRODUCT_GROUP IN ('''+REPLACE(@ProductDivision,',',''',''') + ''')
ORDER BY #SKU_CODE'

SELECT @QUERY = 
'SELECT DISTINCT #SKU_CODE AS SKU FROM CI_Product_Master '

FROM DBO.FN_SPLITSTRING(@SKUSEARCH)

SELECT @QUERY2 = @QUERY2 +
'OR #SKU_CODE LIKE ''' + NAME + '''
'
FROM DBO.FN_SPLITSTRING(@SKUSEARCH)

SET @QUERY2 = STUFF(@QUERY2,1,2,'WHERE (')

SET @QUERY = @QUERY + @QUERY2 + @QUERY3

EXEC (@QUERY)
END

ELSE
BEGIN
DECLARE @SQLCOMM VARCHAR(MAX)
SET @SQLCOMM = 'SELECT DISTINCT #SKU_CODE AS SKU FROM CI_Product_Master
WHERE VALID = ''Y''
AND PRODUCT_GROUP IN ('''+REPLACE(@ProductDivision,',',''',''') + ''')
ORDER BY #SKU_CODE'
EXEC (@SQLCOMM)
END

我已经被困在这里几天了。希望有人能帮助我。

0 个答案:

没有答案