[英]SSRS multi-value parameter issue
我有一个参数,将这些值传递给存储过程:
“ CA,FL,NY,NJ,MA,CT,RI”。
我遇到的问题是,如果我选择“ ALL”选项,则不会带回任何“ CT”值。 如果我单独选择它,它确实会带回“ CT”。 我注意到没有“ MA”的记录,所以我不知道这是否与它有关。
我在SQL中使用逗号分隔的分隔符来解析值。
另外,是否有人知道如何在SQL Server中测试参数以查看其实际传递值的方式?
存储过程如下:
CREATE PROCEDURE plicense
(@division VARCHAR(500))
AS
SELECT a.lastname,
a.firstname,
b.divisionname
from Table A
INNER JOIN Table B
ON A.practid = B.practid
WHERE B.divisionname in (SELECT item from dbo.fnsplit(@division, ','))
SSRS参数由如下所示的存储过程填充:
SELECT DISTINCT divisionid,
divisionname
FROM TABLE A
UNION
SELECT -1, 'N/A'
问题出在SSRS中。 我需要将其添加到主存储过程的参数部分:= join(Parameters!division.Value,“,”)。
创建一个函数以将数据分隔为表
CREATE FUNCTION [dbo].[Split]
(
@List NVARCHAR(2000),
@SplitOn NVARCHAR(5)
)
RETURNS @RtnValue TABLE
(
Id INT IDENTITY(1,1),
Value NVARCHAR(100)
)
AS
BEGIN
WHILE (CHARINDEX(@SplitOn,@List)>0)
BEGIN
INSERT INTO @RtnValue (value)
SELECT
Value = LTRIM(RTRIM(SUBSTRING(@List,1,CHARINDEX(@SplitOn,@List)-1)))
SET @List = SUBSTRING(@List,CHARINDEX(@SplitOn,@List)+LEN(@SplitOn),LEN(@List))
END
INSERT INTO @RtnValue (Value)
SELECT Value = LTRIM(RTRIM(@List))
RETURN
END
在您的报告中,
Where column in (select dbo.split (@param))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.