我有一个连接到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
我已经被困在这里几天了。希望有人能帮助我。