该查询在生成周内工作正常,直至年度变化。正如您在年度变化中看到的生成输出(如下图所示),我得到了一个不同的模式。请帮忙。我希望平等分配7天。目前订单是订单不相等,您可以在输出28/12 / 2014,01 / 01/2015和04/01/2015中看到错误的顺序。同样,第一个差异不是7天而是6天(从2014年9月4日到2014年11月9日)。我希望这是7天,即(2014年9月3日至2014年11月9日)
答案 0 :(得分:0)
尝试这样的事情。您希望几周开始哪一天?
.o
编辑:我想我明白你要对GROUP BY datediff(dd, ad.xDate, @MaxDate) / 7
CTE做些什么,但我无法弄清楚它是如何工作的。根据它看到的内容,它看起来重复了AllDates
值,并删除了@MinDate
之前的每个日期。我的期望是看到这样的事情应该照顾你额外的一天问题。我也猜测你的14周的周数会在一天内重叠。
@MaxDate
答案 1 :(得分:0)
您可以使用cte生成14周
这将生成一个表,其中包含7天递增的周数,无论开始日期如何,您可以使用该表对数据进行分类:
declare @startdate date
set @startdate = '2014-11-13'
;with cte (SOW,EOW,cnt)
as
(
select @startdate as SOW,dateadd(dd,6,@startdate) as EOW, 1 as cnt
union all
select dateadd(dd,7,SOW),dateadd(dd,7,EOW),cnt+1
from cte
where cnt<14
)
select * from cte
答案 2 :(得分:0)