s-s-rS 报告 - 如何使参数灵活
Posted
技术标签:
【中文标题】s-s-rS 报告 - 如何使参数灵活【英文标题】:s-s-rS Report - How to make parameter flexible 【发布时间】:2022-01-06 23:51:44 【问题描述】:我希望 s-s-rS 报告具有灵活的参数。
例如,得到两个参数,即 OTP No(文本字段)和分支代码(下拉列表中的多个值)。
如果要根据OTP No搜索,报告应该只根据OTP No搜索。
如果要根据分支代码进行搜索,则与分支代码相同,报告应仅根据分支代码进行搜索。 如果两个参数都有值,则报告应同时搜索字段 A 和字段 B。
以下是我的查询。
where ((@otpNo ='' ) and (@branchCode is not null) and (branch_code in (@branchCode)))
or ((@branchCode is null) and (@otpNo is not null) and (otp_no = @otpNo))
or ((@otpNo is not null) and (@branchCode is null) and (otp_no = @otpNo) and (branch_code in (@branchCode)))
但是我遇到了错误,我怀疑分支代码是多值导致我的查询不起作用。
【问题讨论】:
仅供参考,SQL Server 2008 已完全不受支持超过 2 年;很久以前你就已经整理好升级路径了。 对于上述查询,您最好使用存储过程。 目前 SQL server 是 2016。请进一步详细说明您的意思是使用存储过程更好? 那你为什么要标记 [sql-server-2008] 和 [s-s-rs-2008-r2]?据我所知,[powerbi] 与这些版本不兼容。正确标记。 更新了标签。你能告诉你使用存储过程更好的意思吗? 【参考方案1】:您应该让分支代码发送所有值(如果用户不想过滤特定值)以使查询更简单。
where
(NULLIF(@otpNo, '') IS NULL OR otpNo = @otpNo) AND
branch_code IN (@branchCode)
【讨论】:
你是对的..如果不想要特定过滤器,用户分支代码应该发送所有值...感谢您的启发...以上是关于s-s-rS 报告 - 如何使参数灵活的主要内容,如果未能解决你的问题,请参考以下文章
如何在第一个参数选择 s-s-rs 2008 报告的基础上添加级联参数
如何在 s-s-rS 报告中将多个参数作为单独的多个页面传递?