办公室总共12个人,分为6个小组,每天要有一组人打扫卫生。
我们的工作日是:周一到周五
给一个初始日期,算出本年度,这个小组值日日期!

如何计算自己哪天打扫卫生--构造数据
如何计算自己哪天打扫卫生
select identity(int,1,1as iid,* 
如何计算自己哪天打扫卫生
into #temp
如何计算自己哪天打扫卫生
from 
如何计算自己哪天打扫卫生(
如何计算自己哪天打扫卫生
select top 100 percent [date]=dateadd(day,id,'2004-01-01'),[weekday]=datename(weekday,dateadd(day,id,'2004-01-01'))
如何计算自己哪天打扫卫生 
from (
如何计算自己哪天打扫卫生
select id=a.id+b.id*10+c.id*100 from 
如何计算自己哪天打扫卫生(
如何计算自己哪天打扫卫生    
select id=0 union all select 1
如何计算自己哪天打扫卫生    
union all select id=2 union all select 3
如何计算自己哪天打扫卫生    
union all select id=4 union all select 5
如何计算自己哪天打扫卫生    
union all select id=6 union all select 7
如何计算自己哪天打扫卫生    
union all select id=8 union all select 9
如何计算自己哪天打扫卫生) a,(
如何计算自己哪天打扫卫生    
select id=0 union all select 1
如何计算自己哪天打扫卫生    
union all select id=2 union all select 3
如何计算自己哪天打扫卫生    
union all select id=4 union all select 5
如何计算自己哪天打扫卫生    
union all select id=6 union all select 7
如何计算自己哪天打扫卫生    
union all select id=8 union all select 9
如何计算自己哪天打扫卫生) b,(
如何计算自己哪天打扫卫生    
select id=0 union all select 1
如何计算自己哪天打扫卫生    
union all select id=2 union all select 3
如何计算自己哪天打扫卫生) c
如何计算自己哪天打扫卫生) aa
如何计算自己哪天打扫卫生
where datepart(weekday,dateadd(day,id,'2004-01-01')) between 2 and 6
如何计算自己哪天打扫卫生
and  id between 0 and 366
如何计算自己哪天打扫卫生
order by id
如何计算自己哪天打扫卫生) bb
如何计算自己哪天打扫卫生
如何计算自己哪天打扫卫生
--查询
如何计算自己哪天打扫卫生
select [date]=convert(varchar(10),[date],120),[weekday] from #temp
如何计算自己哪天打扫卫生
where iid%6 = (select iid from #temp where [date] = '2004-11-16')%6 
如何计算自己哪天打扫卫生
如何计算自己哪天打扫卫生
--删除临时表
如何计算自己哪天打扫卫生
drop table #temp

问题主要在这里:
where iid%6 = (select iid from #temp where [date] = '2004-11-16')%6
iid为插的序列号, iid被6除的余数只要等于特殊日期(2004-11-16,这天是我值日)被6除的余数相等即可。

相关文章: