【问题标题】:Using IS NOT NULL and IS NULL as parameters in SSRS?在 SSRS 中使用 IS NOT NULL 和 IS NULL 作为参数?
【发布时间】:2021-05-12 13:24:32
【问题描述】:

我正在创建一个 SSRS 报告,其中我需要一个名为 Status 的参数,其值将是“Current”、“Former”,或者基本上在显示 Current 和 Former 方面选择它们。

此参数将引用日期列,如果 (date is NULL OR date > GETDATE()) 则它们将被视为“当前”

如果(date is not NULL AND date < GETDATE()),那么他们将被视为“前任”

我已经尝试在 WHERE 子句(WHERE DATE @NULL OR DATE > GETDATE()) 中使用类似的“Former”参数值,但我不确定在 SSRS 中是否可以将 IS NULL 和 IS NOT NULL 传递给这些参数值。

表格数据示例:

Name     Date
John     NULL
Bill     2/27/2021
Bob      2/1/2021

所以在这个例子中,John 是“现任”,Bill 仍然是“现任”,而 Bob 是“前任”。

【问题讨论】:

  • 如果日期
  • 请提供样本数据、所需结果并添加适当的数据库标签。
  • 上下文很重要。 “基本上选择他们两个”到底是什么意思?您的参数是“可选”的,并且您希望在“未设置”此参数时包含所有内容吗?
  • 该参数是必需的,如果我们选择同时选择“当前”和“前任”,它将根据日期列显示当前和前任员工的结果。
  • 一个(单数)参数不能包含多个值(“Current”和“Former”)。您的报告参数可能是一个字符串 - 您是否打算以某种方式将这两个词都嵌入其中?然后如何在报告的数据源中使用该参数?没有上下文,人们很难提供帮助。

标签: sql-server reporting-services parameters


【解决方案1】:

我认为您正在寻找的是:

WHERE (@param = 'Current' AND (Date is NULL OR date > GETDATE()))
 OR (@param = 'Former' AND Date <= GETDATE())
 OR @param = 'All'

正如 jarlh 所说,您不需要在第二行中检查“不为空且小于”。

不确定您所说的“基本上都选择它们”是什么意思,所以我假设第三个选项是“全部”。如果参数为 null 触发了这种情况,您应该能够将最后一行更改为:

OR @param is NULL

那么“NULL IS NULL”将满足第三个条件并带回所有行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多