我知道这个问题已经被问过几次了,但是我发现的答案不适用于我的代码,因此我将其发布在这里。我的查询在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)
答案 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