【问题标题】:SSRS Report - How to make parameter flexibleSSRS 报告 - 如何使参数灵活
【发布时间】:2022-01-06 23:51:44
【问题描述】:

我希望 SSRS 报告具有灵活的参数。

例如,得到两个参数,即 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] 和 [ssrs-2008-r2]?据我所知,[powerbi] 与这些版本不兼容。正确标记。
  • 更新了标签。你能告诉你使用存储过程更好的意思吗?

标签: sql-server reporting-services powerbi reporting


【解决方案1】:

您应该让分支代码发送所有值(如果用户不想过滤特定值)以使查询更简单。

where 
   (NULLIF(@otpNo, '') IS NULL OR otpNo = @otpNo) AND
   branch_code IN (@branchCode)

【讨论】:

  • 你是对的..如果不想要特定过滤器,用户分支代码应该发送所有值...感谢您的启发...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多