2016-04-01 5 views
0

Ich möchte die multiple Werte aus Textbox in ssrs übergeben. Ich habe versucht wie unten, aber nicht Ausgabe.Wie mehrere Werte als einzelner Parameter in ssrs übergeben werden

Wenn ich die mehreren Werte (IT, TL) an die folgende Prozedur übergeben, gibt es keine Daten zurück. Hier geben die von SSRS übermittelten Werte Parameter wie IT, TL an. Diese Werte erreichten das Backend wie 'IT, TL' in einfachen Anführungszeichen. scheint das einfache Zitat verursacht das Problem.

Jeder bitte helfen Sie mir, wie mehrere Werte als einzelner Parameter übergeben.

create procedure p2 
    (
    @dname varchar(30) 
) 
    as begin 

    select * from emp where deptname in (@dname) 

    end 
+0

Ist Ihre Auswahl in einem Datensatz? –

Antwort

0

Zuerst benötigen Sie eine Splitting-Funktion (vorausgesetzt, Sie verwenden SQL Server). Sie können diese überall im Internet finden, das ist das, das ich benutze. in Ihrer gespeicherten Prozedur zu diesem

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 

Dann können Sie die where-Klausel ändern:

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

Dies geht auch davon aus, dass die gespeicherte Prozedur und UDF in der gleichen Datenbank ist.