码迷,mamicode.com
首页 > 其他好文 > 详细

获取分组中的第一行

时间:2015-03-05 16:45:47      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

以下表为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

获取分组中的第一行

标签:

原文地址:http://www.cnblogs.com/huhu-xiaomaomi/p/4316026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!