查看为 table 每条记录的日期范围
View as table with range od date for each record
我有 table employees
列 surname
、names
、birth 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
列(由逗号分隔的几个姓氏组成)、day
、task
、description
等。因此,将 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
我有 table employees
列 surname
、names
、birth 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
列(由逗号分隔的几个姓氏组成)、day
、task
、description
等。因此,将 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