以下表为DimWorkItem表,要查询每个任务每天最新的工时
Id | Title | ChangedDate | Person | TodayHours |
1 | 银行卡代扣协议签约 | 2015/3/2 16:34:21 | 张三 | 2 |
1 | 银行卡代扣协议签约 | 2015/3/3 10:14:37 | 张三 | 3 |
1 | 银行卡代扣协议签约 | 2015/3/3 15:03:56 | 张三 | 2.5 |
2 | 密码变更 | 2015/3/2 09:03:20 | 李四 | 4 |
2 | 密码变更 | 2015/3/3 14:40:51 | 李四 | 2 |
select t.Id,t.Title,t.ChangedDate,t.Person,t.TodayHours
from
(select a.Id,a.Title,a.Person,
CONVERT(varchar(12) ,a.ChangedDate, 111 ) ChangedDate,
a.ChangedDate,
a.TodayHours,
--按任务ID和更改日期分组,并按更改日期排序,获取第一行
row_number() over(partition by Id,CONVERT(varchar(12) ,a.ChangedDate, 111 ) order by ChangedDate desc) rk
from Tfs_Warehouse.dbo.DimWorkItem a ) t
where t.rk = 1
查询结果如下:
Id | Title | ChangedDate | Person | TodayHours |
1 | 银行卡代扣协议签约 | 2015/3/2 16:34:21 | 张三 | 2 |
1 | 银行卡代扣协议签约 | 2015/3/3 15:03:56 | 张三 | 2.5 |
2 | 密码变更 | 2015/3/2 09:03:20 | 李四 | 4 |
2 | 密码变更 | 2015/3/3 14:40:51 | 李四 | 2 |