Multivalue Parameter

I have the query below that works fine, but breaks when I make my parameter multivalue.  I tried making the  syntax in(@category) and didn't work..  Any ideas?
select
*fromiv00101
i
where
i.uscatvls_2
=CASEWHENi.uscatvls_2
=''THEN'NA'ELSE@category
END
http://www.isolutionspartners.com/

Hi Ryan,
Per my understanding that when you use the query above you can't filter the multiple value parameter, right?
I have tested on my local environment and as
Patrick  Hurst mentioned that you can modify the query like below to makes it work:
SELECT *
FROM iv00101 i
WHERE i.uscatvls_2 = CASE WHEN i.uscatvls_2 = '' THEN 'NA' END
OR i.uscatvls_2 IN (@Category)
But I have some question about why you using the logic "CASE WHEN i.uscatvls_2 = '' THEN 'NA' "
I think you can just use below query to get the same result:
SELECT *
FROM iv00101 i
WHERE  i.uscatvls_2 IN (@Category)
If you want to also filter the blank value you can just set the "Allow Blank values" in the @Category:
If I have some misunderstanding, please try to provide more details information.
Regards,
Vicky Liu
Vicky Liu
TechNet Community Support

Similar Messages

  • Creating multivalue parameter in SSRS on top of DB2 views

    How to create multivalue parameterized report in SSRS for belo scenerio:
    Data source is DB2 and we don't need to write whole query as expression while creating dataset.
    But if we don't need to write whole query as expression in SSRS, is that possible to create the view in DB2 with same expression query and while calling the view in SSRS, how multivalue report can be generated.

    Hi Andy,
    Based on my understanding, you want to create a multivalued parameter in your report. When creating the parameter, you don’t want to write a whole query to specify the parameter’s value which is used in the main dataset, right?
    In Reporting Services, if we want to create a multivalued parameter, we can create a new dataset to populate the valid values for the parameter. Within the new dataset, we needn’t write a whole query which is used in the main dataset, we can only retrieve
    those data which will be used by the parameter. So in your scenario, you can write a simple query to populate the valid values for the multivalued parameter. If you create a view on database side, you can also call the view in SSRS to retrieve the corresponding
    data, then specify the values for the parameter with those data.
    Reference:
    Lesson 3: Adding Parameters to Select Multiple Values in a List (SSRS)
    Best regards,
    Qiuyun Yu
    Qiuyun Yu
    TechNet Community Support

  • Multivalue parameter values

    @partno is defined a multivalue parameter
    when I enter a single part number or leave it empty data is properly returned.
    when I enter multiple part numbers data is not returned.  I have tried:  604-02394, 604-03492 in the parameter prompt.
    I have tried entering those parts on separate lines in the parameter prompt:
    604-02394
    604-03492
    my sql query :
          and (fpartno in (@Partno) or '' in (@Partno))
    I only want to see those two parts in the report.

    Hi JimHoopsDSC,
    Per my understanding that you create an multiple values parameter "partno" which haven't specify the "Available values" and "Default Values", when you entered single values or leave it empty in the parameter prompt everything
    works fine, but when you try to enter multiple value in it, no data will return right?
    I have tested on my local environment and can't reproduce the issue, according to the query you have provided that when the fpartno is not blank, data will filter based on the value in the parameter you have entered, when you enter empty all
    the data in the table will return.
    Please check details information below to have a double check:
    I assumed you have blank values in the field "fpartno", please make sure you have check the "Allow Blank value":
    Please make sure you have enter the multiple values as below: every values in a single line:
    If I have some misunderstanding, please try to provide more details information about your issue and the parameter you have created.
    Regards,
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • Split Field and MultiValue parameter

    I have a multi-value parameter.  Options for example are: Zebra, Elephant, and Seal.  Then I have a table (actually a sharepoint list) which one field contains other animals in delimited fashion. For example: Elephant;Lion.
    What I have set up is a filter (on either the datasource or the tablix) of [Field] IN @parameter which works fine... as the field isn't also multi-valued.  I've tried using the Split function, but then it errors trying to evaluate the filter expression.
    What I want to do is to return the row if any selected parameter matches any value in the field.
    Does that make sense?  I'm trying not to get too wordy.  Thanks in advance for any responses.

    Hi There
    You might be able to do this by the help of some custom code so please do the following
    Create a custom function in your report which will convert your string to array as you know your fields contain string value you need to convert that in to array first so please go to your report properties
    and code and paste this function
    Public Shared Function ConvertStringtoArray(sourceString as String) As string()
    Dim arrayOfStrings() As String = sourceString.Split(",")
    return arrayOfStrings
    End Function
    Public Shared Function ConvertStringtoArray(sourceString as String) As string()
    Dim arrayOfStrings() As String = sourceString.Split(",")
    return arrayOfStrings
    End Function
    Now in you tablix filter please do the expression like this
    =instr(join(code.ConvertStringtoArray(Fields!Country.Value),","),join(Parameters!CountryPram.Value,","))
    =instr(join(code.ConvertStringtoArray(Fields!Country.Value),","),join(Parameters!CountryPram.Value,","))
    Where please change Parameters!CountryPram.Value to your parameter value and please change Fields!Country.Value to your sharepoint list fields values.
    I am assuming that you have used multivalued parameter
    I am putting some screenshot for your help
    If you have any question please let me know
    Many thanks
    Syed Qazafi Anjum

  • Using a multivalued parameter in a report

    Hi,
    I want to create a report with a multivalued string parameter.
    I tried the following code but it does not work:
    IPropertyName my_prop_name
    Map m_parameterDefinitions = new HashMap();
    m_parameterDefinitions.put(my_prop_name, new PropertyDef(PropertyType.STRING,true,true,false,false,false));
    List my_values = new ArrayList();
    my_values.add("zero");
    my_values.add("one");
    my_values.add("two");
    m_parameterDefaults.put(my_prop_name, my_values);
    IReportInputMeta m_meta = ReportInputMeta.getInstance(m_parameterNames, m_parameterDefinitions, m_parameterDefaults);
    does anyone knows how should I do to make it work?
    thanx.
    Bassem.

    As far as I understand, the reporting UI does not support multivalued parameters.
    Best regards, Julian

  • Make MultiValue Parameter Dynamically Enable/ Disable

    Hi,
    I have two MultiValue  parameters in SSRS report. Both the parameters are independant of each other.  If I choose value from first parameter, Second parameter should be disabled dynamically. If I choose  value from second parameter, First
    parameter should be disabled dynamically.
    Can this be achieved in SSRS ?
    Is there a workaround to achieve the above scenario ?
    Regards
    G. R. Venkatesh

    Using nulls is one way. Another way is to set a default value say NotApplicable. Just set below expression for default value
    IIF(Len(Parameters!SecondParameter.Value) > 0,"NotApplicable",Nothing)
    Similarly for the other parameter
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs
    Hi Visakh,
    I am new to SSRS.
    Could you please share a workaround sample for my scenario
    I tried to implement the expression for Multivalue  parameter1 default value, The parameter1 has below expression
    =IIF(Len(Parameters!SecondParameter.Value) > 0,"NotApplicable",Nothing)
    and Parameter2 has below expression
    =IIF(Len(Parameters!FirstParameter.Value) > 0,"NotApplicable",Nothing)
    I get a error saying "The expression references the parameter 'parameter2' which doesn not exist in the parameters collection. Letters in the names of parameters must use correct case"

  • Multivalued parameter in SSRS 2012

    I am designing a report using SSRS 2012.
    I want to pass multiple transactions id to the report as parameter.
    In the report i have declared @tranid as parameter and set "Allow multiple values" checked.
    So how to pass more than one transactions ids through my code ?
    and how to write query in the report.
    My code (which is not working)
    strids =  "tran1,tran2,tran3"
    Dim param1 As New ReportParameter("tranid", strIds, False)
    Dim params As New Collections.Generic.List(Of ReportParameter)
     params.Add(param1)
    ReportViewer1.ServerReport.SetParameters(params)
    In the report my query, Select * from myTable where transactionNo in (@tranid)
    If i pass only one then its working. If i select more than 1 then not working.
    h2007

    Hi,
    To pass multi value parameters in ssrs reports We have to set "Allow multiple values" option for that parameter.
    Next step is to create a split function in the DB(split with ,(comma)) and use that split function like below
    Select * from mytable where transactionId in (SELECT value from dbo.split_fn(@transactionId,',')).
    Additional Info :Instead of "in" operator u can use "ifexists" since using "in" operator  will raise some performance issues.
    Thanks,
    Kishore Babu K
    Kishore Babu K

  • Passing Multivalued parameter to sub report in SSRS

    Hi Team,
    I tried passing multi valued parameter to sub report in SSRS but the report is blank.
    Rgds,
    Shree

    Hi Shree,
    As per my understanding, the issue is caused by the multiple-value parameters are not passed from the main report to the subreport correctly. Please refer to the steps below to check whether you configure the subreport parameter settings correctly:
    Drag a Subreport control from toolbox to design surface.
    Right-click the Subreport to open the Subreport Properties dialog box, then select the correct report as subreport.
    Click Parameters in the left pane.
    Add parameters as below (Parameter1 is a single-value parameter, Parameter2 is a multi-value parameter in subreport ):
    Name: Parameter1              Value: [@ReportParameter1]
    Name: Parameter2              Value: =Split(join(Parameters!ReportParameter2.Value,","),",")
    Please also directly select or type the same values in subreport to check whether the subreport works well with those parameter values.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Handling Multivalue parameter in jsp

    Hi! Can anyone please send the piece of Java code through which multiple values can be handled dynamically and set for the report.I am stuck on that. I was done with drop down functionallity for single discrete values but couldn't set multiple default values selected by the user in the list box.
    Can anybody help? Thanks in advance.

    Hi Cocuz,
    Thanks a lot for the help, but this doesn't solve my purpose as my reports are deployed on the BO server and I am calling them through my JSP's from the server dynamically at run time. I am fetching current values set in the report as .getdefaultvalues() method is not working for list box selection. But the major concern is that in current values, it displays only the values set in the selected values box on the BO server. I want to refresh the list dynamically.
    Can you plz help in that?
    I have resolved the issue of selecting multiple values and setting for the report, but I want dynamic list to be populated in the list box on my parameter UI.....
    I am attaching the code I am using....
    IReport theReport = (IReport)oInfoObject; 
            //Get a List of Parameters
            List parameters = theReport.getReportParameters();
    IReportParameter pf = (IReportParameter)parameters.get(i);
    ParameterField field = (ParameterField)pf.getParameterField();
    System.out.println("List value 00000000:" +field);
    Values defaultValues = field.getValues();
    Iterator defaultValueIterator = defaultValues.iterator();
    while ( defaultValueIterator.hasNext() ){
                                       String[] arrTemp = null;
                                       Value def = (Value)defaultValueIterator.next();
    THANKS IN ADVANCE....

  • Use multivalue parameter in "in" clause.

    Hi expert,
    I pass a status string 'OPEN;CLOSED;REOPEN' into procedure, and in the procedure I converted it into variable v_status in format 'OPEN','CLOSED','REOPEN', then used it in the procedure as follows:
    select * from table where status in v_status
    but no record retrieved from statement, please tell me how to make it work?
    Many Thanks,

    918440 wrote:
    Hi expert,
    I pass a status string 'OPEN;CLOSED;REOPEN' into procedure, and in the procedure I converted it into variable v_status in format 'OPEN','CLOSED','REOPEN', then used it in the procedure as follows:
    select * from table where status in v_status
    but no record retrieved from statement, please tell me how to make it work?
    Many Thanks,(ab)use EXECUTE IMMEDIATE

  • Passing input for Multivalue command parameter

    Hi All,
    Currently we are on SAP Crystal Reports 2008 SP2 , We are building reports with command prompts.
    Issue is when we have string Multivalue parameter like {?Country Name} , user has to enter inputs with single quotes as 'Mexico' , 'USA'..
    However, is there anyway so that user can give input without single quotes? like : Mexico, USA
    Regards
    Guruprem
    P.S : We are restricted to use only VARCHAR paramter

    OK. What this is what works for me in Oracle:
    1) Create a blank report
    2) Create a String prompt and call it 'Country'
    3) Create a formula with this code:
    stringvar array s;
    numbervar i;
    stringvar fin_s;
    s := (Split({?Country},","));
    for i := 1 to ubound(s) do
        fin_s := fin_s + "'" + trim(s[i]) + "'" + if i = ubound(s) then "" else ",";
    "("& fin_s &")";
    4) Insert the report in question that contains the Command Object as a Subreport and place it on the Report Header
    5) Right-click the Subreport > Change Subreport Links > Move the formula created in Step 3 to the pane on the right > Look for an option towards the bottom left that says 'Subreport parameter field to use' > Choose the Country prompt from the dropdown
    6) Suppress all the sections of the Main Report except the Report Header
    7) Run the report and type in the values as:
    Mexico, USA, France, England and so on...
    8) If you do not wish to use the Subreport method, create a Stored Proc that accepts a comma delimited string as the prompt value and handles the additional tasks like splitting the values by comma and adding single quotes and brackets.
    -Abhilash

  • SSRS report parameter left blank to select all

    Hello,
    Before posting this question I have looked at related topics and couldn't find a clear answer!
    Question: Is there a workaround for a parameter to select all if blank?
    I have a report that has a multivalue parameter, my user is asking if there is a way to have an empty parameter box that will default to selet all, so if the user does not fill parameter and clicks on view report it should work.
    I have tried:
    SELECT Item FROM ItemTable
    UNION ALL
    SELECT '' AS Expr1 ORDER
    BY Item
    Then checked Allow Blank Value ''
    and checked Allow Null Values
    and did the change in my query. The problem here is that the parameter will have null check box which the user does not want see?
    Thanks

    Hi There
    Thanks for yourposting. I think you do not need to click on checkbox allow null value, just check allow blank value and change in your dataset query like this.
    Please change the query but the synxtax might look like this
    if @commenttype=''
    select * from Comment_Type
    else
    select * from Comment_Type
    where
    Comment_Type=@commenttype
    if @commenttype=''
    select * from Comment_Type
    else
    select * from Comment_Type
    where
    Comment_Type=@commenttype
    By default your parameter is blank and you display all records, but when user type something it will filter the datset based on the user input
    I am putting some screenshot for your help.
    If you have any questions pelase let me know
    Many Thanks
    Syed Qazafi Anjum
    Please click "Mark as Answer" if this resolves your problem or "Vote as Helpful" if you find it helpful.

  • How to design SSRS report to filter multi-value parameter?

    I developed an RDL which takes a multivalue parameter and I want to set a visibility expression or filter based on this parameter. This parameter uses an "All" value equal to '660E4583-7F29-4D37-8038-5096AE6A1A7F'.
    I want to make the main tablix visible if this parameter is set to this uniqueidentifier and invisible otherwise. How can I achieve this either in the tsql dataset or on the report side? I have tried numerous workarounds, but none have worked so far! I've tried
    different expressions and datatypes.
    Before I tried If/Else statements in the tsql dataset, but most recently I instead added flags to the tsql dataset for each condition and am trying to make this tablix only include the records with the flag matching the parameters chosen. But even this is not
    working for me.
    Here is sample data:
    create table #dummydata
    parameter varchar(max),
    b varchar(max)
    insert #dummydata values('660E4583-7F29-4D37-8038-5096AE6A1A7F','record 1'),('660E4583-7F29-4D37-8038-5096AE6A1vcd','record 2'),('660E4583-7F29-4D37-8038-5096AE6A1v52','record 3')
    select * from #dummydata
    And my filter expression in the RDL for this tablix is:
    =iif(Parameters!Modifier.Value(0)="660E4583-7F29-4D37-8038-5096AE6A1A7F",1,0)
    With datatype = integer and value = 1 However, this tablix is invisible with the above even when I choose "All" for the parameter value = default value. How can I make this tablix visible?
    Ryan D

    Hi Ryan D,
    After testing the scenario in my local environment, everything goes well. As per my understanding, I think this issue can be caused by the Available values in the Modifier parameter. Could you tell us the Available values of Modifier parameter in your scenario?
    The following scenario in my test is for your reference:
    I create a dataset with the sample data you posted.
    Add a multi-value parameter named Modifier in the report.
    Specify the following values in the Available Values of the parameter (please note that the value “All” should be located in the first place, because we use Parameters!Modifier.Value(0) in the filter):
    Label: All                 Value: ="660E4583-7F29-4D37-8038-5096AE6A1A7F"
    Label: A                   Value: ="1"
    Label: B                   Value: ="2"
    Label: C                   Value: ="3"
    Drag a table to the design surface, insert parameter and b fields in the table.
    Use the same expression as you said to add a filter in the tablix.
    We can refer to the following screenshot:
    If there are any other questions, please feel free to ask.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Multi Value Parameter in SSRS

    Hi,
    I have a parameter "MyTeam" (multi-select) which is a list of users.
    I also have P1,P2,P3,P4,P5 as additional parameters.
    My requirement is , When I select only 1 value in "MyTeam" , P1 should be filled with value selected and P2,P3,P4,P5 should contain "00-000-00".When I select 2 values in "MyTeam" , P1 & P2 should be filled with respective
    values and P3,P4,P5 should contain "00-000-00".
    I am using the below expression on P2,P3,P4,P5 and changing the Count  accordingly, but it doesn't seem to work and I get the error below.....!!!
    Example : This expression is for P2 and I am selecting only 1 value in "MyTeam".
    =iif(Parameters!MyTeam.Count >= 2, Parameters!MyTeam.Value(1),"000000-00000000")
    The Value expression  contains an error: Index was outside the bounds of the array.
    When I change my expression to =iif(Parameters!MyTeam.Count >= 2, "TRUE","FALSE")
    , I get no error.
    How do I resolve this..??
    Thanks Uma.K

    Hi kanumuri1987,
    According to your description, you want to create a multivalued parameter, when you select some values from the drop-down list, other unselected values should be set to "000000-00000000".
    In Reporting Services, if we have specified available values for a parameter, after processing parameter values, we can select expected values from drop-down list, at this time, those parameter values are fixed and they can’t be changed. So for your requirement,
    it can’t be achieved currently.
    If you have any question, please feel free to ask.
    Best regards,
    Qiuyun Yu
    Qiuyun Yu
    TechNet Community Support

  • Passing multiple integer values as parameter in SSRS

    Hello,
    I am trying to pass a comma separated multiple integer value parameter in SSRS report and it errors out complaining that it is not able to convert the nvarchar value to datatype int. But it works fine when I pass a single value. Here is the code I am using
    for the report and I am stuck at passing multiple values.
    SELECT
    id,count(*) as cnt
    from table
    and ID in (@id) group by id
    eg: if I pass 10,20,30 then I would get error however if I pass 10 then it works fine
    Is there a different method to pass multiple integer values?
    Thanks for your help.

    A comma is, of course, a textual character and not an integer, thus the error you are getting. Multi-value parameters can be used for this.
    Select "Allow multiple values"and set data type to Integer. Multi-value parameters deliver the values as an array. The query interface is smart enough to convert them to the proper syntax (comma-delimited) automatically so a statement like:
    WHERE Field IN (@id)
    where the parameter has an array of values {1, 2, and 3} is interpreted as:
    WHERE Field IN (1,2,3)
    You do not need to manually convert it in a transact SQL query. That is not the case for displaying the value array in your report. If you wish to display the array (described above) in your report as "1, 2, 3", you will need to use a join expression:
    =Join(@id, ", ")
    As DJ described, the other part to a multivalue parameter is the Available values. These can be set explicitly but given your example, I think it would be best to create a new dataset that retrieves a distinct list of the IDs that can be retrieved, perhaps
    something like:
    SELECT DISTINCT GroupName, GroupID
    FROM table
    WHERE [criteria]
    Set the available values to use this query with GroupName (or whatever user-friendly field you choose for your dataset) as the label and the id as the value. The label field should be something the the target report user can easily identify the correct group
    using.
    If you don't want to or can't use a multivalue parameter for some reason then you will need to manipulate your parameter value prior to consuming it in your query. When you add the parameter to the TSql query and save the dataset, SSRS adds it to the Parameters
    property of the dataset. Open the dataset properties and select the parameters tab. You should see your parameter in the list. click the expression builder (fx) button next to the value and enter this expression:
    =Split(@id,",")
    Note that the second element of the expression is the delimiter. If your text input has comma-space as a delimiter (1, 2, 3 vs 1,2,3) then that element must include ", ". My example just has comma so if you use that with a string "1, 2, 3"then
    the resulting array will still have 3 elements but the 2nd and 3rd elements of the array will have a preceding space which will cause your dataset to error with the same error. As long as there are no non-numeric characters in any of the elements, the split6
    will create the text array, SSRS will dynamically generate the correct "IN"syntax (comma separated) and SQL will convert the elements from VARCHAR to INT on the fly.
    "You will find a fortune, though it will not be the one you seek." -
    Blind Seer, O Brother Where Art Thou
    Please Mark posts as answers or helpful so that others may find the fortune they seek.

Maybe you are looking for

  • DataBlAppend takes long time on registered data

    Greetings! I'm using DIAdem 2012 on a Win7/64-bit computer (16GB memory and solid-state hard drive).  I work with one tdms file at a time but that file can be up to 8GB so I bring it into the Data Portal via the Register Data option.  The tdms file c

  • Iso7 update issues

    Hi, I have updated my phone to the new iso7. However I can no longer use iMessages or sign in to this on my phone, I can't log into the game centre too. When I put my username and password it does nothing apart from state there is no coverage... But

  • Could my Macbook magnet have wiped a hard-disk?

    I have an external 250Gb Freecom toughdrive, on which I had about 80Gb of valuable data. I took my laptop and hard drive into my living room and when I went to access the drive *it was completely empty*, just a single file with the a garbled filename

  • Audio Channels. Only one channel is playing

    For some reason only one channel is playing a signal on a couple of clips. The other clips are fine. All I did to the clips in question was increase the DB levels. How can I adjust it so that I get signals on both audio channels? Thanks

  • Legacy DAQ Issue

    I'm updating a lab setup and switching from some old legacy programs to new NI-DAQMX stuff.  After doing the straightforward updates for the new version of Labview, alot of my VI's continue to throw 10401 errors.  As I understand it, this is because