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.

Similar Messages

  • Passing multiple character values from parameter form to PL/SQL

    Hi,
    I am passing multiple character values from parametr form into
    the report query and a PL/SQL procedure. It works fine with the
    query, when I use &variable. But, it doesn't compile in PL/SQL,
    so I just used the :variable, but not getting any records in the
    PL/SQL procedure. Any suggestions?
    sincerely,
    gj

    gj / Fedro,
    Only using the &referecne, you can pas a string / multiple character values and this would work for query only.
    The bind parameter in PL/SQL wouls support only single value
    Thanks
    The Oracle Reports Team

  • How to pass multiple single values to parameter in planning function?

    Hi!
        I can not pass the variables (multiple single Values) from Input Layouts(BexAnalyzer) to Planning Function Types...Anyone have any idea for setting the parameter in the function types. I use the exit class CL_RSPLFC_BPS_EXITS.
    My Parameter Type is Elementary and also use variables allowed

    If you want to use the class as in a planning function type, proceed as follows:
    1. Create an InfoObject that accepts the name of the function module as a characteristic value. We recommend that you create an InfoObject of type character with length 30 and indicate that this InfoObject is "Without Master Data".
    2. In transaction RSPLF1, create a new function type. Chose the "Reference Data" option and enter the name of the class. This does NOT imply that reference data is read automatically, but results from the requirements for implementing the class.
    3. On the "Parameter" tab page, create two parameters - one for the exit module and one for the init module. The parameters should be "elementary". Chose the InfoObject you created in step two as the dedicated InfoObject. The names of the parameters are determined from the values of constant P_C_NAME_EXIT_PARAM and P_C_NAME_INIT_PARAM.
    4. If you require additional parameters in your function module (called exit parameters), you create these parameters as elementary parameters (with appropriate InfoObjects). Note an additional predefined parameter here - in many function modules, the name of the area is used from which the module is called. The area is not used in BI Integrated Planning but it may be the case that an area was created in BPS which only uses the current InfoCube. For this reason, you can create a parameter with the name specified in constant P_C_NAME_AREA_PARAM by specifying the name of this area to the function module. The value of this parameter is passed on to the function module in the interface as the value of the importing parameter I_AREA. Note that this technology can generally only by used for Basis InfoCubes and simple planning areas (not multi- planning areas or MultiProviders).
    You can create additional elementary parameters as long as the names do not correspond to the predefined names. The class automatically recognizes the additional parameters and transfers them to table IT_EXITP in the function modules.
    5. After you have activated the planning function type, you can create planning functions and fill the parameters accordingly.

  • Passing Multiple Single Values from Sender Query to Receiver Query in RRI

    Dear All.
    We have 2 - Bex Reports ZBEX_1 & ZBEX_2
    1. In ZBEX_1 having the fileds data like the below.
    Account Doc. Number - Clearing Document --- Amount
    12345                  -  65432                --- 100
    12346                  -  54321               ---  50
    2. In ZBEX_2 having the following data.
    Account Doc.Number -- Amount
    45342                     - 10
    66666                        -  100
    65432                       -   10
    54321                      - 5
    3. I am Traying to create RRI Between ZBEX_1 & ZBEX_2 , with Sender query as ZBEX_1 and Receiver query as ZBEX_2
    If I drilldown from ZBEX_1 need to show the following output in the ZBEX_2
    Account Doc. Number  -  Amount
    65432                       -     10
    54321                      -     5
    i.e If Clearing Documnet in the ZBEX_1 is same as Account Doc. Number in ZBEX_2 those Account Doc. Numbers I have to show in the output of ZBEX_2 RRI Report.
    Both the records I have to show at a time.
    So please suggest me
    1. How to pass Multiple Single Values to Next Query using RRI
    2. How to Map Clearing Document to Account Doc. Number in RRI.
    NOTE: Account Doc. Num length is same as Clearing Document
    Please suggest me.
    Thanks & Regards,
    Kiran Manyam

    Your scenario of passing values from multiple records in Source does not suit well for RRI Jumps.
    In ZBEX_2 query, create a Replacement path variable on Clearing Document. In that Replacement path variable, use the Replacement with query option and choose the ZBEX_1 as the underlying query source.
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/bd/589b3c494d8e15e10000000a114084/frameset.htm
    When you execute ZBEX_2, what ever clearing document values that ZBEX_1 has will be passed through the replacement path variable as a filter to the ZBEX_2
    Hope it helps!
    Uday Pothireddy

  • Passing multiple single values to a Planning Sequence

    Hi All,
          We are using BEx Analyzer for  planning. We  are passing multiple single values for a single variable , to a IP-planning sequence.  Planning sequence is only taking the last value passed and ignoring the rest.
    Multiple variable values are passed as below:
    Name                            Index                 Value
    VAR_NAME_1     1     ZCC
    VAR_LINES     1     5
    VAR_VALUE_1     1     A10000001
    VAR_VALUE_1     1     A10000002
    VAR_VALUE_1     1     A10000003
    VAR_VALUE_1     1     A10000004
    VAR_VALUE_1     1     A10000005
    These cell references are passed to "command button" through the "Command Range" property.
    The values are calculated correctly but for only one Cost center (last one in the list) , In this case only data for the Cost Center "A10000005"  is processed and rest of the cost centers are ignored.
    What am I missing here? I appreciate your help.
    Patch Levels:
    SAP GUI  7.10 (Patch 16)
    BEx Analyzer 7.X SP 12
    Thank you,
    Math

    Hi Indu Sharma  - I have tried several combinations, but did not work.
    VAR_VALUE_1         
    VAR_VALUE_2         
    VAR_VALUE_3         
    VAR_VALUE_4         
    VAR_VALUE_5 
    VAR_VALUE_1        
    VAR_VALUE_1     
    VAR_VALUE_1        
    VAR_VALUE_1        
    VAR_VALUE_1  
    VAR_VALUE_EXT_1         
    VAR_VALUE_EXT_2         
    VAR_VALUE_EXT_3         
    VAR_VALUE_EXT_4         
    VAR_VALUE_EXT_5 
    Thank you,
    Math

  • How to pass  internal table values to parameter

    hi,
             how to pass  internal table values to parameter in selection screen.if is it possible means please sent codeings.
    thanks.
      stalin.

    hi,
    tables : mara.
    data :  begin of itab_mara occurs 0,
              matnr like mara-matnr,
              ernam like mara-ernam,
              end of itab_mara.
    selection-screen : begin of block blk1 with frame title text-001.
    parameters : p_matnr like mara-matnr.
    selection-screen : end of block blk1.
    select matnr ernam from mara into corresponding fields of itab_mara
                                                                    where matnr = p_matnr.
    loop at itab_mara.
    write :/ itab_mara-matnr,
               itab_mara-ernam.
    endloop.
    <b><REMOVED BY MODERATOR></b>
    Message was edited by:
            Alvaro Tejada Galindo

  • Passing multiple single values in Customer Exit Variables

    Hi,
    I have one requirement to Pass multiple single values in Customer Exit Variable.
    If the user gives 2010 i need to get value previous fisacal year(2009),if its 2009, we need to get 2009.
    Just requirement is like how to pass multiple single values?
    Thanks.

    Hi..
    For this create a variable- Types of variable= Characteristics Value> Processing type as Customer Exit-->Reference Char as Fiscal year..
    Try this code..
        when 'xxxx'.
          DATA: lv_zp0003_month(2) TYPE n,
                  lv_zp0003_year(4) TYPE n.
          CLEAR: lv_zp0003_month, lv_zp0003_year.
          lv_zp0003_month = sy-datum+4(2).
          lv_zp0003_year = sy-datum(4).
    If the month is January the year is set to previous year
          IF lv_zp0003_month = '01'.
            lv_zp0003_year = lv_zp0003_year - 1.
           l_s_range-low = lv_zp0003_year.
    Else the year is set to actual
          ELSE.
            l_s_range-low = lv_zp0003_year.
          ENDIF.
          IF l_s_range-low = l_s_range-high.
            l_s_range-opt = 'EQ'.
          ELSEIF l_s_range-high IS INITIAL.
            l_s_range-opt = 'EQ'.
          ELSEIF l_s_range-low LT l_s_range-high.
            l_s_range-opt = 'BT'.
          ENDIF.
          l_s_range-sign = 'I'.
          APPEND l_s_range TO e_t_range.
    Hope this helps.
    Regards.
    AKG

  • Passing Multiple Single values in User Exits

    Hello All,
    I have a requirement where in, a user could enter either a single value, multiple single values or a combination of a range and single values.
    This set of values need to be passed on to a variable with in a user exit. I have been able to get either one single value to pass or one single range. I am unable to pass on multiple single values or a combo of a range and single value from the user entry.
    I would appreciate if anyone could help me with the structure of the code to pass multiple single values or combo.
    I was wondering if I would need to pass the values into an internal table first and then pass it to the user exit variable. However, as I am not a strong ABAP resource, I am struggling.
    Any and all help is deeply appreciated.
    Warm regards
    Sunil

    Hello Marc,
    There are two requirements which I was trying to address.
    1. IN few queries, the users enter either a range of profit centers or multiple single values in the pop-up window. I need to pass those values from that variable to an variable of type USer Exit to derive partner profit center values with in the query.
    For this I have been able to pass values for either a single value or a single range. I am unable to pass on values for multiple single values or a combo of a range and single values.
    2. I am trying to create a query for the top 5 customers to be used in the Corporate Performance Monitor. However, when I am trying to use the variable of type "replacement path", the system does not allow me to release it for OLE DB for OLAP.
    To obviate this problem, I was hoping to create a variable of typeUSer Exit" and then pass the values from the variable of type "replacement path" to this variable.
    Is it a workable solution? I was hoping that the method to pass the values in both the above scenarios might be similar.
    Please guide me.
    Warm regards
    Sunil

  • How to pass multiple MDX values for a single parameter into a drill-through report?

    I'm thinking this will be an easy question for any experienced SSRS/MDX developers, at least I hope so!  I've created a report that gives the user the option to choose viewing data for the current/active week, or YTD.  Depending on which link the
    user selects, the report simply calls itself and needs to pass in the parameter value for Active week.  If it's active week, the parameter value will simply be "true".  If it's YTD, the parameter value needs to be both "True" and "False" so the current
    week's data is accounted for as well.  I've set everything up except for the final step, and I have no idea what to type into the Value field below.  I've tried different things: false, as you see below (it errors saying I'm missing the parameter
    value), the value in MDX format: =[School Dates].[Active Week].&[True] (it said I was missing a bracket), a 1 instead of the word true (again, missing a parameter value).  Nothing is working.
    So my question is kindof two-fold: 1) how do you pass in the value at all and 2) more specifically, how do you pass in multiple values (both true & false) ??

    I'm sorry for being so dense, but I'm not quite following, although what I've tried makes me think if I can follow you, it will work :)
    To answer your initial questions, you are correct with both your assumptions:
    1) detailType is the parameter that specificies YTD/Weekly, this is a "report defined" parameter that I am using to determine which Row Group to display (either YTD or Weekly)
    2) SchoolDaysActiveWeek is the parameter that is being set to either true or false -- this is a field in the cube that states whether that record is for the current week or not
    So in following your instructions, well that's the problem I'm not quite following :)
    1) When you say Delete the SchoolDaysActiveWeek parameter from the report only, do you mean to mark the parameter as Hidden?  If so, I've done this.
    2) I'm not quite sure where to use the statement you provided me.  You said to put it in the dataset, but I don't know which dataset.  I assume you mean the "main" dataset (as opposed to the hidden dataset that gets generated when you mark a field
    as a parameter).  If this is the case, the only place I could see that would allow you to use such a statement is in the Filter section of the properties.  I tried this, and it did not generate any errors, but it also kept my report groups from displaying
    -- it just showed a blank report, so I think it probably wasn't bringing back any rows to populate them with.
    I also tried going into the Expression section for the SchoolDaysActiveWeek parameter in the second screenshot and placing the statement there.  When I did this and ran the report, I would get the following error:
    The 'SchoolDaysActiveWeek' parameter is missing a value
    So what am I missing!? 
    Also, thanks for taking the time to respond!!

  • Passing multiple select value from BI publisher to PL/SQL functions

    Hi - I have designed a report which pass parameters (Multi select) into a function to get the output result. When a single parameter value is passed to the function, report is being displayed. When multi select value is passed to the function it is returning the error `wrong number or types of arguments in call to 'F_PROCESS_WAVE_DATA'. When i checked the parameters passed to the function, i can see each multi select value is treated as different value and is assigned to different parameter in the function.
    Any help on passing the multi select parameter into function will be helpful.
    Regards,
    Vikram.

    All - Issue was resolved. I followed the following steps to resolve the issue
    1. Create a PL/SQL table type variable as VARCHAR2 in the database - Say as Larray
    2. Create PL/SQL type record and table for the record in database. Lrec, Ltable
    3. In BI report pass multiple select LOV variable as Larray(variable).
    4. In DB function, Parameter should be defined as LARRAY.
    5. Return PL/SQL table type Ltable from the function.
    Regards,
    Vikram.

  • Multiple Available Values in Parameter

    I have a query like Select * from Table where column in (@Parameter)
    @Parameter has two choices. 
    Choice 1 value is 01 or 05. Choice 2 value is 04 or 06.
    If Choice 1 is selected for the parameter, I want the query to result into Select * from Table where column in (01, 05).  This should show results for rows where Column is either 01 or 05.  "Column" is a text data type.
    How do I use multiple available values in a parameter?  I found this post
    http://social.msdn.microsoft.com/Forums/en-US/a484ceb0-78f8-472e-ae96-d48f85ea25b7/multiple-values-in-available-values-non-query-in-report-parameter-in-ssrs?forum=sqlreportingservices but that is not working for me.  I tried to put 01 and 05 (no double
    quotes) on different lines in the parameter available values expression box but I still get no results.  My parameter is a data type of text and is not multi value.
    If I change my available value to 01 I get correct results
    I'm really stuck.  I hope someone can help me.
    Milissa Hartwell

    Hi Milissa,
    In order to achieve your requirement, I suggest that you should add another parameter named parameter1 in your report. For more details, please see:
    Modify the query like below:
    Select * from Table where column in (@Parameter1)
    Add another parameter named Parameter1 with ‘Allow multiple values’ option in the report.
    Select Hidden as the parameter visibility.
    Specify the values below in the Available values:
    Label: 1                                            
    Value: =iif(Parameters!Parameter.Value=1,”01”,”04”)
    Label: 2                                            
    Value: =iif(Parameters!Parameter.Value=1,”05”,”06”) 
    Specify the values below as the Default Values:
    Value: =iif(Parameters!Parameter.Value=1,”01”,”04”)
              =iif(Parameters!Parameter.Value=1,”05”,”06”)
    Then when you select 1 as the choice of Parameter, it will directly affect the result into Select * from Table where column in (01, 05). When you select 2 as the choice of Parameter, it will directly affect the result into Select * from Table where column
    in (04, 06). 
    If there are any other questions, please feel free to ask.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Passing multiple session values from cold fusion into a flash movie

    Hello all,
    I know that to pass multiple variables into a flash movie
    you could use the embed tag like this(with the & between each
    variable):
    <embed
    flashvars="variable1=value1&variable2=value2"
    ></embed>
    Now to pass a single session variable from coldfusion in i
    did the following; which worked:
    <embed
    src="ASdb.swf"
    FlashVars="UserName=<cfoutput>#session.userName#</cfoutput>"
    width="550" height="400" autostart="true">
    </embed>
    Note that i had to use the cfoutput tags to get the value
    stored in the variables. Now; i tried to do the same thing for two
    session variables and the second one does not get read in. Here was
    my code:
    <embed src="ASdb.swf"
    FlashVars="UserName=<cfoutput>#session.userName#</cfoutput>&testTypeID=<cfoutput>#session .testTypeID#</cfoutput>"
    width="550" height="400" autostart="true">
    </embed>
    Can someone please tell me what I am doing wrong? Thank you
    very much in advance.

    Hold on there was a little error: My final code that did not
    work was the following:
    <embed src="ASdb.swf"
    FlashVars="UserName=<cfoutput>#session.userName#</cfoutput>&testTypeID
    =<cfoutput>#session.testTypeID#</cfoutput>"
    width="550" height="400" autostart="true">
    </embed>

  • Passing multiple single values from R/3 BAPI to BW Query in VC

    Hi Experts
    I have a VC model where I am calling an R/3 BAPI which is returning a table of customer accounts.  I'm trying to go directly from that BAPI to a BW Query and pass the table of accounts into the BW Query.
    The BW Query has been set up with a variable to accept multiple single values for accounts, and I have mapped the correct output field from the BAPI to the correct input field on the Query.
    The BAPI does not seem to be passing the table of accounts into the Query.   If I hard code a single account in the mapping of the BAPI to Query call, the Query successfully returns the data I expect.
    Can I pass a table of accounts to a BW Query in this way?
    Many Thanks
    Tom

    Hi
    Have you tried with 'Group & Combine' operator. Just add this operator & join your BAPI & BI Query to this. Then in ths configure of this oparator select the 'Accoount' field & gourp the data accordingly. Also specify the aggregation if required. & in the table/chart after the operator select the fields which you want to show.
    I hope this is what you are looking for.
    Regards
    Sandeep

  • Passing current row values as parameter issues.

    JDeveloper - 11.1.1.6
    JHeadstart - 11.1.1.4.26
    Weblogic - 10.3.5
    I am having trouble passing parameters from a table to a popup.
    I have a master group that contains a detail group, within this detail group I have created a group region. This region is meant to show remarks for the current details table record.
    In the details group (table layout) I have specified as the region "depends on" item a textInput field so that when I click the context area I get the popup.
    The remarks group (in the popup) has a composite key comprised of three attributes that exist in the detail table. What I need to do is pass these values as parameters to the remarks group.
    Here is what I have done so far:
    1. Created parameters on the top level remarks group - names match parameters set in region
    2. Created a "query bind parameters" string with the necessary VO bind variables.
    3. In the detail group where the region exists I have created the parameters that I am trying to pass TO the remarks group.
    My problem is that the parameter values that I am trying to pass to the region/remarks group are not being filled correctly. For parameter values I have tried:
    #{row.bindings.attributeName.inputValue}
    #{bindings.DetailGroupNameAttributeName.inputValue}
    #{bindings.DetailGroupNameTableAttributeName.inputValue}
    Many, many others
    These attributes exist and are editable in the table.
    All I want to do is pass these three values from the detail table (per row) to the remarks group. What am I missing? What EL expression will give me the per row values I need? I know there is a lot of material out there on this, but I seem to have tried them all, I don't know where I've gone wrong.
    Thanks...

    I think I have figured this out...
    I am a bit embarrassed but it turns out that the bindings for the variables I was trying to pass were not being generated. I forced it and now things seem work as expected.
    Is there some sort of bug in JHS that would cause the bindings not to be generated? I don't understand because the fields are all visible and update-able in my table. Why would some bindings be created, but not these?
    I'd like to understand what where I went wrong.
    Thanks!

  • How to pass multiple filter values in SAPBEXsetFilterValue function

    I am using SAPBEXsetFilterValue for filtering the query. I want to have multiple filters for same key value for ex. for plant I want the query to be filtered for two plants at the same time using this function please any one could help me out

    Hi,
    Afraid, that is not possible:
    Re: Setting Multiple Filter Values or Filter Range Using SAPBEX API?
    Re: Passing a range to SAPBEX.XLA!SAPBEXSetFilterValue
    Re: SAPBEXsetFilterValue
    Best regards,
    Eugene

Maybe you are looking for