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

SSRS实现@StartDate/@EndDate空值时正常返回数据方法

SSRS报表日期参数留空无返回值问题修复

问题现状

  • 报表共配置3个参数:@AISNoParam、@StartDate、@EndDate,已提前设置日期参数允许留空
  • 原有查询逻辑受WHERE子句中AND连接的日期区间判断限制,当@StartDate、@EndDate留空时查询返回空结果,即使开启参数允许Null值配置也无法解决
  • 原有SQL查询语句如下:
Select *
FROM tblAccessLog

WHERE
--For SSRS by AIS Number
(AISNo = @AISNoParam)

AND 

([ViewedDT]  >= @StartDate AND [ViewedDT]  <= @EndDate) 


ORDER BY AISNo asc, [ViewedDT] ASC
  • 当前SSRS报表参数配置界面如下:
    SSRS配置界面
  • 目标需求:两个日期参数留空时,可正常返回匹配@AISNoParam条件的所有数据。

修复方案

核心调整思路:修改日期区间的判断逻辑,当日期参数为NULL(留空状态)时跳过对应日期边界的过滤校验,仅当参数传入有效日期值时才执行范围匹配。
修改后的可直接使用的SQL语句:

SELECT *
FROM tblAccessLog
WHERE
-- 按AIS编号匹配过滤
AISNo = @AISNoParam
AND 
-- 开始日期过滤:参数为空时不限制起始边界
([ViewedDT] >= @StartDate OR @StartDate IS NULL)
AND 
-- 结束日期过滤:参数为空时不限制截止边界
([ViewedDT] <= @EndDate OR @EndDate IS NULL)
ORDER BY AISNo ASC, [ViewedDT] ASC

配置校验提示

  • 确认SSRS参数设置中,@StartDate、@EndDate的「允许Null值」「允许空值」选项已勾选,留空时参数传入值为NULL即可正常触发无限制逻辑
  • 上述写法同时兼容单日期参数查询场景:仅填开始日期时返回该日期之后的所有匹配数据,仅填结束日期时返回该日期之前的所有匹配数据,无需额外修改逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:36:26