You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

结合状态参数实现日期过滤的作业报表WHERE子句修改咨询

作业报表WHERE子句修改方案

核心逻辑

保留原有的状态筛选规则,针对「关闭」状态的作业额外叠加日期范围校验,非关闭状态的作业不受日期参数影响,同时兼容用户未指定日期范围的场景。
假设你新增的关闭日期范围参数为@ClosedDateStart(起始日期)、@ClosedDateEnd(结束日期),参数未选择时默认传NULL。

最终WHERE子句

WHERE 
  JobStatus IN (@Status)
  AND (
    -- 非关闭状态作业直接放行
    JobStatus != '关闭'
    OR (
      -- 关闭状态作业需匹配日期范围
      JobStatus = '关闭'
      AND (ClosedDate >= @ClosedDateStart OR @ClosedDateStart IS NULL)
      AND (ClosedDate <= @ClosedDateEnd OR @ClosedDateEnd IS NULL)
    )
  )

适配调整说明

  • 如果你的状态枚举里关闭状态的取值不是中文「关闭」,替换成实际值即可,比如英文Closed。
  • 如果你的报表工具中未选择的日期参数默认返回值不是NULL(比如是1900-01-01这类占位值),把上述语句中的IS NULL判断替换为对应占位值的匹配逻辑即可。
  • 如果需要强制用户选择关闭作业的日期范围,删除OR @ClosedDateStart IS NULL和OR @ClosedDateEnd IS NULL两个分支即可。

效果验证示例

当用户勾选状态为「打开、关闭」,同时指定关闭日期范围为2024-01-01至2024-06-30时,查询会返回所有打开状态的作业,加上2024年上半年关闭的作业,完全匹配需求。

内容的提问来源于stack exchange,提问作者hjReads

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:12:03