ssrs多值参数

时间:2019-03-20 16:00:47

标签: sql reporting-services

我知道这个问题已经被问过几次了,但是我发现的答案不适用于我的代码,因此我将其发布在这里。我的查询在SQL Server v17.0中。我有一个带代码参数的SSRS报告,但仅在选择1个代码时才显示值。在参数props下,我选中了“允许多个值”选项,但没有执行任何操作。有什么建议吗?

create procedure [roo].[get_cc_serv]
( @upc_code varchar(max) = ''   )
as
select 
acct_num = ser.account_number,
status_change_date = crd.date_status_chg,
upc14 = isnull(crd.upc_14, '-')

from fact.fact_cc_serv ser
join dim.dim_cc_card crd on 
ser.dim_cc_cardholder_key = 
crd.dim_cc_cardholder_key

where ser.end_date = 99991231
and crd.upc_14 is not null
and crd.upc_14 not like 'Z%'
and crd.upc_14 in (@upc_code)

1 个答案:

答案 0 :(得分:0)

为此创建过程将强制将多选视为单个值。

如果您将SQL查询嵌入报表中而不是使用proc,它应该可以工作:

将其放入报表的数据集中:

select 
acct_num = ser.account_number,
status_change_date = crd.date_status_chg,
upc14 = isnull(crd.upc_14, '-')

from fact.fact_cc_serv ser
join dim.dim_cc_card crd on 
ser.dim_cc_cardholder_key = 
crd.dim_cc_cardholder_key

where ser.end_date = 99991231
and crd.upc_14 is not null
and crd.upc_14 not like 'Z%'
and crd.upc_14 in (@upc_code)

如果必须在SP中使用它,则需要一点儿幻想来提交多值参数并自己处理拆分:https://stackoverflow.com/a/9862901/400375