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

SSRS报表多筛选器WHERE子句逻辑实现求助

SSRS报表筛选WHERE子句解决方案

针对你遇到的参数为空时筛选逻辑失效的问题,直接用下面的TSQL逻辑就能实现需求:

WHERE 
    -- 订单号筛选:参数非空时匹配对应订单,为空时不限制
    (@OrderNumber IS NULL OR sh.CustomerOrderNbr = @OrderNumber)
    AND
    -- 日期筛选:参数非空时用起止范围,为空时默认取当日数据
    (
        (@StartDate IS NOT NULL AND @EndDate IS NOT NULL AND CONVERT(date, cr.CreateDt) BETWEEN @StartDate AND @EndDate)
        OR
        (@StartDate IS NULL AND @EndDate IS NULL AND CONVERT(date, cr.CreateDt) = CONVERT(date, GETDATE()))
    )

关键逻辑说明

  • 订单号筛选:用@OrderNumber IS NULL OR 匹配条件的结构,参数为空时该条件自动成立,不会过滤数据;参数有值时仅保留对应订单的记录。
  • 日期筛选:分两种场景:
    1. 用户设置了起止日期参数,就按指定范围筛选;
    2. 未设置日期参数(参数为空),自动筛选当日数据。

SSRS参数配置配合

  • 将@StartDate和@EndDate的默认值设为=Today(),打开报表时默认加载当日数据;
  • 确保@OrderNumber、@StartDate、@EndDate的「允许空值」选项已勾选,这样参数为空时SQL逻辑才能正常触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:01:17