s-s-rS 空白参数

Posted

技术标签:

【中文标题】s-s-rS 空白参数【英文标题】:s-s-rS Blank Parameters 【发布时间】:2016-08-08 16:44:49 【问题描述】:

我有 3 个简单的参数,它们都是文本,并且允许多个值以及空白值。没有可用值或默认值,因为我希望用户自己键入值。将所有参数留空时,不会显示任何数据,因为没有空白值。但是,当没有为参数输入值时,我想显示所有数据。我该怎么做?

这就是查询现在的样子

SELECT  [PROGRAMNO]
      ,[ACCTNO]
      ,[CLAIMNO]
      ,[TOTALCHARGES]
      ,[TOTALPAYMENT]
      ,[TYPE]
  FROM DATALINE
WHERE PROGRAMNO IN (@PROGRAMNO)
  AND ACCTNO IN (@ACCTNO)
  AND CLAIMNO IN (@CLAIMNO)

【问题讨论】:

【参考方案1】:

您可以添加 OR 以允许每个条件为 NULL(或空白)值 - 取决于您在参数中允许的值。

WHERE (PROGRAMNO IN (@PROGRAMNO) OR @PROGRAMNO is null)
  AND (ACCTNO IN (@ACCTNO) OR @ACCTNO IS NULL)
  AND (CLAIMNO IN (@CLAIMNO) OR @CLAIMNO IS NULL)

或者如果您允许使用空白值:

WHERE (PROGRAMNO IN (@PROGRAMNO) OR @PROGRAMNO = '' )
  AND (ACCTNO IN (@ACCTNO) OR @ACCTNO = '' )
  AND (CLAIMNO IN (@CLAIMNO) OR @CLAIMNO = '' )

【讨论】:

【参考方案2】:

多值参数不允许空白输入。因此,您需要在下拉列表中添加一个代表空白值的项目。如果您手动指定可用值,您只需将其添加到列表中。该值将为空白,标签可能类似于“空白”或“N/A”。如果您使用查询来填充可用值,则需要将UNION 这个空白值添加到其他结果中。无论哪种方式,您还需要在主数据集中的 WHERE 子句中考虑这一点,正如 Hannover Fist 指出的那样。

【讨论】:

以上是关于s-s-rS 空白参数的主要内容,如果未能解决你的问题,请参考以下文章

如何覆盖s-s-rS中的参数默认值?

即使数据不在 s-s-rS 报告中的表格中,我们能否获得与空白相同数量的输出?

如何在带有参数的 s-s-rS 查询设计器中使用 IF ELSE 语句?

如何让子报表在 s-s-rS 中呈现?

s-s-rS 参数条件语句

更改前面的参数时未刷新 s-s-rS 参数值(全选)