SSRS 2008 Multi Value parameters using DB2
Hi,I have read some issues with sending a multi value parameterised query to iseries. One previous thread roughly explained a workaround for this and I includer the text below. I basically understand that the Join creates a string of values that are selected in the multi value parameter. but dont understand how to implement the workaround---------------------------------------------
So I assume the full error you are getting from the report server is the "Extension doesn't support multi-valued parameters"? That is because, as I mentioned earlier, multi-valued parameters are only supported for SQL, Oracle, and SSAS. But, I think you are on the right track with your workaround using the Join function.
Please post your query and report parameter values. This will help us identify a workaround. Also, I suggest you take a look at Robert's blog entry to see how to view the actual query that is sent to the database.
You will likely need to set your query text to an expression like so:
Code Snippet
="SELECT customer_name, telephone_number, address1, address2, cityfrom MyTable WHERE city IN '" + Join(Parameters!City.Value,"', '") + "'"
I hope that helps...---------------------------------------------
August 27th, 2009 10:51am
For reference my query is SELECT AMAMODPRD.CRP0003P.WKCTR, AMAMODPRD.CRP0003P.TYPE, AMAMODPRD.CRP0003P.PERIOD1, SUM(AMAMODPRD.CRP0003P.PLNSET) AS SumPlannedSet, SUM(AMAMODPRD.CRP0003P.PLNRUN) AS SumPlannedRun, SUM(AMAMODPRD.CRP0003P.PLNSET) + SUM(AMAMODPRD.CRP0003P.PLNRUN) AS TotalTime, AMAMODPRD.CRP0005P.PRDCAP, AMAMODPRD.CRP0003P.FITEM, AMAMODPRD.CRP0005P.PRDTYPFROM AMAMODPRD.CRP0003P, AMAMODPRD.CRP0005PWHERE AMAMODPRD.CRP0003P.WKCTR = AMAMODPRD.CRP0005P.WKCTR AND AMAMODPRD.CRP0003P.PERIOD1 = AMAMODPRD.CRP0005P.PERIOD AND (AMAMODPRD.CRP0003P.TYPE IN ('MPLAN', 'Move', 'Nonmv')) AND (AMAMODPRD.CRP0003P.PERIOD1 BETWEEN ? AND ?)GROUP BY AMAMODPRD.CRP0003P.TYPE, AMAMODPRD.CRP0003P.PERIOD1, AMAMODPRD.CRP0003P.WKCTR, AMAMODPRD.CRP0005P.PRDCAP, AMAMODPRD.CRP0003P.FITEM, AMAMODPRD.CRP0005P.PRDTYPHAVING (AMAMODPRD.CRP0003P.FITEM IN (?)) AND (AMAMODPRD.CRP0003P.WKCTR IN (?))ORDER BY AMAMODPRD.CRP0003P.PERIOD1The multi value I am looking to pass are for FITEM in ().
Free Windows Admin Tool Kit Click here and download it now
August 27th, 2009 11:22am
for this you can use below query. this also requires creation of a function, which is also given below
="SELECT customer_name, telephone_number, address1, address2, city from MyTable INNER JOIN dbo.SplitDelimited(Join(Parameters!City.Value,"',
'"),',') cities on cities.Value= MyTable.city"
CREATE FUNCTION [dbo].[SplitDelimited]
(
@List
varchar(8000),
@SplitOn varchar(1)
)
RETURNS @RtnValue table (
Id int identity(1,1),
Value varchar(100)
)
AS
BEGIN
While (Charindex(@SplitOn,@List)>0)
Begin
Insert Into @RtnValue (value)
Select
Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
End
Insert Into @RtnValue (Value)
Select Value = ltrim(rtrim(@List)) -- WHERE ( LEN(@List) IS NULL OR LEN(@list) > 0)
Return
END
let me know if you have any problem in using these quries.
ThanksSanjay
July 5th, 2011 5:40am


