首页 > 其他 > 详细

获取分组中的第一行

时间:2015-03-05 16:43:36      阅读:92      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!