2016-04-01 24 views
0

ssrsのテキストボックスから複数の値を渡したいとします。私は以下のようにしてみましたが、出力を得ることができませんでした。ssrsで単一のパラメータとして複数の値を渡す方法

以下の手順に複数の値(IT、TL)を渡すと、データが返されません。ここでは、SSRSから渡された値はIT、TLなどのパラメータを報告します。これらの値は一重引用符で 'IT、TL'のようにバックエンドに達しました。一重引用符で問題が引き起こされているようです。

複数の値を単一のパラメータとして渡す方法を教えてください。

+0

データセットで選択したものはありますか? –

答えて

0

まず、分割機能が必要です(SQL Serverを使用していると仮定します)。あなたはインターネット上のこれらのすべてを見つけることができます、これは私が使用するものです。

CREATE FUNCTION [dbo].[udf_Split] 
    ( @List  varchar(8000), 
     @Delimiter varchar(5) 
    ) 
    RETURNS @TableOfValues table 
     ( RowID smallint IDENTITY(1,1), 
     [Value] varchar(100) 
    ) 
AS 
    BEGIN 

     DECLARE @LenString int 

     WHILE len(@List) > 0 
     BEGIN 

      SELECT @LenString = 
       (CASE charindex(@Delimiter, @List) 
        WHEN 0 THEN len(@List) 
        ELSE (charindex(@Delimiter, @List) -1) 
       END 
       ) 

      INSERT INTO @TableOfValues 
       SELECT substring(@List, 1, @LenString) 

      SELECT @List = 
       (CASE (len(@List) - @LenString) 
        WHEN 0 THEN '' 
        ELSE right(@List, len(@List) - @LenString - 1) 
       END 
       ) 
     END 

     RETURN 

    END 

次に、あなたはこれにあなたのストアドプロシージャ内でwhere句を変更することができます。

WHERE dept_name IN (SELECT value FROM dbo.udf_Split(@dname, ',')) 

また、これは、ストアドプロシージャとUDFが同じデータベースにあることを前提としています。

関連する問題