SQL获取数据表最新一条记录

流水记录表中,一个用户通常会生成许多记录如果只要最新一条,可以借助max来获取.

如文件上传记录表中,获取文件上传记录表中,每个用户产生的最新一条记录:

select * from file_record as a inner join (
select file_author,max(file_ctime) as file_ctime  from file_record group by file_author) as b
on a.file_author=b.file_author 
and a.file_ctime=b.file_ctime

通过使用max、group by、inner join 即可获取到每个用户的最新一条数据记录;

如果只是需要每个人的最新操作时间,只需要用到b的内容就可以了:

select file_author,max(file_ctime) as file_ctime  from file_record group by file_author

项目实例:

select TableKey,姓名,部门名称,联系电话,身份证号 
from 基本信息_汇总 where 有效否=1 and (所在 like @county+'%')) as a 
inner join (
select 身份证号,max(用餐时间) as 用餐时间  
from [用餐明细汇总] where 所在 like @county+'%' and datediff(day,用餐时间,getdate())>=3 group by 身份证号) as b
on a.身份证号=b.身份证号

如果要讲select取得结果集插入到其他表中,可以用:insert into #temp,如

insert into #tempOldman select TableKey,姓名,部门名称,联系电话,用餐时间 from (
select TableKey,姓名,部门名称,联系电话,身份证号 from 基本信息_汇总 
where 有效否=1 and (所在 like @county+'%')) as a 
inner join (
select 身份证号,max(用餐时间) as 用餐时间  from [用餐明细汇总] 
where 所在 like @county+'%' and datediff(day,用餐时间,getdate())>=3 group by 身份证号) as b
on a.身份证号=b.身份证号

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值