SQL Server:每周计算记录数(周=周四至周三)

时间:2015-10-25 19:44:59

标签: sql sql-server date case

我需要一些帮助,在SQL Server中编写SQL,我需要按周计算行数。关于周的一周有一个棘手的描述 - 对于2015年8月13日之前的任何日期,本周为7天(即从星期四到星期三) - 对于2015年8月13日的日期,本周被视为每周9天(即周四至周五,因此在2015年8月1日至2015年8月21日之间) - 对于2015年8月22日的日期,本周将回到7天(即周六至周五)

现在说了以上所有我希望在报告中看到的结果是以下方式。注意:下面附图中的WE栏是该范围的一周的最后一天。

Sample Result Image

1 个答案:

答案 0 :(得分:0)

只需为3种不同选项编写案例陈述。您可以通过以下内容找到开始日期:

DATEADD(week, DATEDIFF(day, 3,getdate()) / 7, 3) -- Thursdays
DATEADD(week, DATEDIFF(day, 5,getdate()) / 7, 5) -- Saturdays

数字3和5来自于第0天(= 1.1.1900)是星期一。

如果你经常使用它,最好编写一个内联表值函数来返回你需要的日期。