繁体   English   中英

SSRS多值参数问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM