4周信息 按照 周 星期 统计查询

if object_id('tempdb..#temp') is not null--临时表存在则删除
begin
 drop table #temp
end

create table #temp--建立临时表
(
 Id int identity primary key,
 ColumnName varchar(100),
 Week_1 varchar(100) default 0,
 Week_2 varchar(100) default 0,
 Week_3 varchar(100) default 0,
 Week_4 varchar(100) default 0
)

--定义四周的日期
declare @D1 varchar(10)
declare @D11 varchar(10)
declare @D2 varchar(10)
declare @D22 varchar(10)
declare @D3 varchar(10)
declare @D33 varchar(10)
declare @D4 varchar(10)
declare @D44 varchar(10)
set @D1= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), -21), 23)
set @D11= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), -15), 23)
set @D2= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), -14), 23)
set @D22= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), -8), 23)
set @D3= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), -7), 23)
set @D33= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), -1), 23)
set @D4= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), 0), 23)
set @D44= CONVERT(varchar(10), DATEADD(wk, DATEDIFF(wk,0,getdate()), 6), 23)

--生成表头和左列信息
insert into #temp (ColumnName,Week_1,Week_2,Week_3,Week_4) values ('',substring(@D1,6,11)+'至'+substring(@D11,6,11),substring(@D2,6,11)+'至'+substring(@D22,6,11),substring(@D3,6,11)+'至'+substring(@D33,6,11),substring(@D4,6,11)+'至'+substring(@D44,6,11))
insert into #temp (ColumnName) values ('星期一')
insert into #temp (ColumnName) values ('星期二')
insert into #temp (ColumnName) values ('星期三')
insert into #temp (ColumnName) values ('星期四')
insert into #temp (ColumnName) values ('星期五')
insert into #temp (ColumnName) values ('星期六')
insert into #temp (ColumnName) values ('星期日')
insert into #temp (ColumnName) values ('周排行成绩')
insert into #temp (ColumnName) values ('名次')
insert into #temp (ColumnName) values ('获得奖励')
insert into #temp (ColumnName) values ('领取奖励')

--统计信息
--周一至周日的成绩
DECLARE @i int
Set @i = 0
WHILE @i < 7
BEGIN

update #temp set Week_1=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(day,matchtime,(convert(datetime,@D1)+@i))=0),
    Week_2=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(day,matchtime,(convert(datetime,@D2)+@i))=0),
    Week_3=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(day,matchtime,(convert(datetime,@D3)+@i))=0),
    Week_4=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(day,matchtime,(convert(datetime,@D4)+@i))=0)
    where id=(@i+2)
print (@i+2)
Set @i =@i +1
END
--周排行成绩

update #temp set Week_1=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(week,matchtime,@D1)=0),
    Week_2=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(week,matchtime,@D2)=0),
    Week_3=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(week,matchtime,@D3)=0),
    Week_4=(select (CASE WHEN (sum(bean) is null) THEN 0 ELSE sum(bean) END) from match where datediff(week,matchtime,@D4)=0)
    where id=9

select * from #temp

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cactusjoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值