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

SSRS数据驱动查询配置咨询:每月第3个工作日触发报表发送

SSRS数据驱动查询实现每月第3个工作日自动发送配置

核心思路

利用数据驱动订阅的特性:只有当数据源查询返回非空结果集时,订阅才会触发报表发送。所以我们要做的就是让查询仅在当天是当月第3个工作日时返回数据,否则返回空。

调整查询逻辑

把你已有的计算第3个工作日的查询作为子查询,外层添加过滤条件,只匹配当天的日期和第3个工作日的标记。示例SQL如下:

SELECT *
FROM (
    -- 这里替换成你已有的计算第3个工作日的查询语句
    SELECT 
        CAST(Date AS DATE) AS CheckDate,
        DayOfWeek,
        Year,
        Month,
        Day,
        [Working day of the month] AS WorkingDayNum
    -- 假设你是从日历表或自定义计算逻辑获取数据
    FROM YourCalendarSource
    -- 只筛选当月的数据,提升查询效率
    WHERE Year = YEAR(GETDATE()) 
      AND Month = MONTH(GETDATE())
) AS WorkingDayCalc
-- 仅当当天是当月第3个工作日时返回结果
WHERE WorkingDayNum = 3 
  AND CheckDate = CAST(GETDATE() AS DATE)
  • 当运行日期是当月第3个工作日时,查询返回1条符合条件的数据;其他日期运行时返回空数据集。

配置SSRS数据驱动订阅

  1. 新建数据驱动订阅,选择上述调整后的查询作为数据源。
  2. 设置订阅计划为每日执行(确保每天自动检查日期条件),执行时间可以选在工作日的早间(比如9点)。
  3. 在数据驱动的设置环节,确认订阅的触发逻辑依赖查询结果:SSRS会自动判断,如果查询返回空,就跳过报表生成和发送步骤;如果有数据,就按配置完成发送。
  4. 剩下的收件人、报表参数、输出格式等配置,按你的业务需求常规设置即可。

验证方法

  • 手动修改SQL里的GETDATE()为某个测试日期(比如当月第3个工作日的具体日期),执行查询看是否返回结果;再换成非目标日期,确认返回空。
  • 测试订阅时,可临时设置计划为“立即执行”,验证符合条件时是否发送报表,不符合时是否无动作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:45:34