在一个月的前3个星期五运行时填充sql存储过程

时间:2014-10-21 12:12:29

标签: sql-server sql-server-2008 reporting-services

我正在尝试将SQL / SSRS中的报告安排在一个月的前三个星期五运行。

我的SQL / SSRS技能还可以,但不是很好。在查看了我的选项之后,最简单的方法是将报表安排在每个星期五运行,然后将我的存储过程调整为仅在一个月的前三个星期五之一运行时返回数据。这样,收件人将在该月的最后一个星期五收到空白报告。不是很好/很漂亮,但考虑到我的技能,这是一个可行的解决方案。

我修改了在线找到的以下代码,以检索当月的第一个星期五。

SELECT  firstfriday = DATEADD(dd,
                                ( 6 - ( DATEPART(dw,
                                                 DATEADD(MONTH,
                                                         DATEDIFF(mm, 0,
                                                              GETDATE()), 0))
                                        + @@DATEFIRST ) % 6 ) % 6,
                                DATEADD(MONTH, DATEDIFF(mm, 0, GETDATE()), 0))

任何人都可以提供任何帮助来改变它,也包括第二和第三个星期五,然后可以放在我的'where'条款中。

一如既往地感谢您的协助。

1 个答案:

答案 0 :(得分:4)

由于作业计划仅在星期五运行,您需要做的就是检查当月的当天是否小于或等于21.将下面的表达式添加到WHERE子句中。

DATEPART(day, GETDATE()) <= 21