CREATE TABLE @Temp(
Date datetime,
Flag bit)
@Temp table as data from 01-04-2019 to 31-04-2020 (366 records) and flag=0
DECLARE startdate date='12-04-2019', interval int =1 OR 3
预期结果:如果间隔为1个月,则基于开始日期,标记将更新为下面的记录,其余为0
date flag
01-04-2019 0
. 0
. 0
12-05-2019 1
. 0
. 0
12-06-2019 1
. 0
. 0
12-07-2019 1
.. 0
31-04-2020 0
如果间隔为3个月,则将标志更新为1个季度
date flag
01-04-2019 0
. 0
. 0
12-07-2019 1
. 0
. 0
12-10-2019 1
. 0
. 0
12-01-2020 1
. 0
31-04-2020 0
我坚持尝试获取结果。我正在使用SQL Server 2017。
答案 0 :(得分:2)
花些时间让我意识到您的日期格式与我以前使用的格式不同。
我将使用通用表表达式而不是游标。除此之外,请考虑任何给定日期与开始日期之间的月份差异。取该差异的模(这就是'%'符号的含义)。如果它为0,则您的间隔已被击中,因此请激活您的标志。
collatz19.txt