码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver查询连续签到天数

时间:2019-01-04 14:58:44      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:convert   sts   bre   varchar   creat   day   while   created   生成   

create table #t
(keyId int identity,actionDate datetime)
insert into #t(actionDate) select distinct CreateDate from CRM_ScoreTransaction WHERE MemberID=‘1E7DFF7F-51ED-4E21-8471-E892E0326BBD‘ order BY CreateDate desc
---采用遍历的方式生成用户连续签到的天数 start
declare @i int ,@imax int ,@startDate datetime
set @i=1
select @imax = max(keyId),@startDate =max(actionDate) from #t

while @i <@imax
begin
set @startDate = dateadd(day,-1,@startDate)
set @i =@i+1

if not exists(
select null from #t where keyId =@i and actionDate =@startDate
)
begin
set @i=@i-1
break;
end
end

if @imax is null
begin
set @i=0
end

select convert(varchar(20),@i) signinday

---采用遍历的方式生成用户连续签到的天数 end
go
truncate table #t
drop table #t

sqlserver查询连续签到天数

标签:convert   sts   bre   varchar   creat   day   while   created   生成   

原文地址:https://www.cnblogs.com/heyiping/p/10219004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!