流水记录表中,一个用户通常会生成许多记录如果只要最新一条,可以借助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.身份证号