• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 731
  • Last Modified:

SSRS Parameter Allowing Only One Selection


If we run an SSRS report, we can select a value in the parameter and the report previews successfully.  But, if choose more than one selection of choices for the parameter, the preview displays no data.

What do we need to modify to allow for the report to show data for multiple values?  We have this set up for the parameter, but we are not getting the expected behavior.


1 Solution
Vikas GargBusiness Intelligence DeveloperCommented:

If you are using Inline query in your Dataset then simply write query with Where clause having In parameter like

Select * from table where id in (SELECT * FROM  [dbo].[fn_MVParam](@parameter,',')) and in the parameter properties tick allow multiple values

But if you are using Stored procedure you have to use Split and Join.

Split in the Dataset where you have to use function to split the value and in SSRS parameter use Join function with "," Separator ( =join(Parameters!<your param name>.Value,",") ).

The Split function for your SP is here

CREATE FUNCTION [dbo].[fn_MVParam]
   (@RepParam nvarchar(4000), @Delim char(1)= ',')
RETURNS @Values TABLE (Param nvarchar(4000))AS
  DECLARE @chrind INT
  DECLARE @Piece nvarchar(100)
  SELECT @chrind = 1 
  WHILE @chrind > 0
      SELECT @chrind = CHARINDEX(@Delim,@RepParam)
      IF @chrind  > 0
        SELECT @Piece = LEFT(@RepParam,@chrind - 1)
        SELECT @Piece = @RepParam
      INSERT  @Values(Param) VALUES(CAST(@Piece AS VARCHAR))
      SELECT @RepParam = RIGHT(@RepParam,LEN(@RepParam) - @chrind)
      IF LEN(@RepParam) = 0 BREAK

Open in new window

If you created the report in BIDS, open the project and then open the report.
You can then see the dataset.
Look as the properties, look at the filters.

You may see the filter already set to filter the data based upon your parameter.
To get multiple results you need to have the sign change from "=" to "in".
When you use the in clause you also need to have the parameter show without the (0) at the end. (this is the default option when the parameter is chosen).

This is a reasonably hard thing to explain  without screen captures, sorry.

I hope this helps.
Nico BontenbalCommented:
This article has a lot of useful information about multi value parameters:

But when you use a query as the source for you data you can use something like this:
Select * from tablename where fieldname in (@multivalueparameter)

Open in new window

TBSupportAuthor Commented:

I have tried these suggestion but no success.  I did not realize that multi-value parameters are "tricky" when a stored procedure is the data source.

Any other options?


Nico BontenbalCommented:
Can you tell us a bit more details about your problems. What does the data look like, what data types do the tables have. What is the stored procedure like and how is the parameter set up on the report.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Tackle projects and never again get stuck behind a technical roadblock.
Join Now