【问题标题】:SQL SSRS | WHERE using CASE WHEN NULL, ELSE BETWEEN parametersSQL SSRS | WHERE 使用 CASE WHEN NULL, ELSE BETWEEN 参数
【发布时间】:2015-10-28 15:02:32
【问题描述】:

您好:我正在尝试专门搜索 SSRS 报告中的日期字段,其中:

  • @StartDate 和 @EndDate 之间的日期
  • 日期为空
  • 日期为空在@StartDate 和@EndDate 之间

我有 OR 语句工作:

WHERE ((Date BETWEEN @StartDate AND @EndDate) OR (Date IS NULL))

我遇到的问题是:

我可以用 CASE ELSE 来启动 BETWEEN 子句吗?

CASE WHEN @ChkStartDate IS NULL OR @ChkEndDate IS NULL THEN CheckReg.CheckDate IS NULL
    ELSE CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate
    END)

我可以配置 SSRS 报告,以便用户可以搜索所有三个日期条件吗?

  1. 之间的日期
  2. 日期为空
  3. DATE BETWEEN OR DATE IS NULL

谢谢大家

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    我通过向报告中添加布尔参数来完成排他性 WHERE 搜索。

    WHERE 
    (
    (newparameter = '1' AND CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate)
    OR
    (newparameter = '0' AND ((CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate) OR CheckReg.CheckDate IS NULL))
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多