查看为 table 每条记录的日期范围

View as table with range od date for each record

我有 table employeessurnamenamesbirth date 等。我想要的是 table employees table 中的每一行都有日期范围,例如:

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”。我有一个 table tasks,其中包含 teams 列(由逗号分隔的几个姓氏组成)、daytaskdescription 等。因此,将 table 与开头提到的每个姓氏的日期范围进行比较,我可以获得每个姓氏每天 task/activities 的数量。在其他方面使用 smth 像这样

select 员工的不同姓氏、日期、计数(姓氏)超过(按日期、姓氏划分)离开了团队的外部加入任务,如“%”+姓氏+“%”

对于在特定日期没有任务的所有员工,我没有得到带有“0”零值的行,这就是为什么我想要 table 具有天数范围并将 table with tasks table 我可以轻松获得接下来 30 天的所有员工的列表以及他们的任务数量。

我在 MS SQL 2005 服务器上工作

谢谢!

也许您可以使用 CTE(常用 table 表达式):

;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