我的表格employees
包含surname
,names
,birth date
等。我想要的是一张表,员工表中的每一行都有日期,例如:
surname0 , day()+0
surname0 , day()+1
surname0 , day()+2
.................
surname0 , day()+30
surname1 , day()+0
surname1 , day()+1
surname1 , day()+2
.................
surname1 , day()+30
.................
.................
surname100 , day()+0
surname100 , day()+1
surname100 , day()+2
.................
surname100 , day()+30
我不知道该怎么做。
主要想法是列出员工名单和每天的活动数量。如果特定员工在某个特定日期没有“0”的任务。我有一个表tasks
,列teams
(由逗号分隔的几个姓氏组成),day
,task
,description
等。所以比较一下这个表如果每个姓氏的日期范围在开头提到的那个,那么每个姓氏每天可以获得task
/ activities
的数量。在其他方面使用像这样的smth
从员工那里选择不同的姓氏,天,计数(姓氏)(按天,姓氏划分)在团队中留下外部联接任务,如'%'+姓氏+'%'
对于没有特定日期任务的所有员工,我没有获得“0”零值的行,这就是为什么我希望该表具有天数范围并将该表与任务表相结合的原因我很容易得到以下30天的所有员工名单及其任务数量。
我在MS SQL 2005服务器上工作
谢谢!
答案 0 :(得分:0)
也许您可以使用CTE(公用表表达式):
;with days as
(
select convert(datetime,CONVERT(varchar(10), getdate(), 120)+' 00:00:00') day
union all
select d.day+1
from days d
where DATEDIFF(day,convert(datetime,CONVERT(varchar(10), getdate(), 120)+' 00:00:00'), d.day+1)<=30
)
select *
from days d
join employees e on 1=1
有关CTE的更多信息:https://msdn.microsoft.com/en-us/library/ms175972(v=sql.90).aspx