MSSQL分组取后每一组的最新一条记录

本文介绍了一种使用SQL查询的高效方法,通过row_number函数在MSSQL2008及以上版本中实现对用户奖金记录的查询,能够筛选出奖金生效时间在三天前且用户未锁定的最新一条记录。

数据库中二张表,用户表和奖金记录表,奖金记录表中一个用户有多条信息,有一个生效时间,现在要查询:

奖金生效时间在三天前,每个用户取最新一条奖金记录,且用户末锁定

以前用的方法是直接写在C#代码中的:

for(所有末锁定用户)

 查询奖金记录表 top 1 where uid=??? order by 生效时间 desc

 if(上面查询的记录生效时间在三天前)

  输出

 

今天花了大部分时间研究了一下,终于找到一条SQL语句就可以把结果查出来的方法:

那个row_number函数在MSSQL2008以上才会有!!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值