sql分组取时间最近的一条数据
紧跟上回,自从上次把分组人名的需求解决后,今天又发现了一个bug:本来结果应该为不通过的,却显示了通过,经过检查发现这个工序可以重复检查,因此在数据库中可能存在多条数据
以这条数据为例子 在之前的sql中,我只把最近的一条时间查出来了,却没有把那条时间对应的结果带出来
-- 原先的sql(这边只取了片段) select make_number, process_name, max(check_date) check_date, final_result from table where check_type =首检 and make_number=SCZL20221217001 group by make_number,process_name
结果如下: 这边虽然带出了正确的时间,但是没有带出这条正确时间的result,因此我们需要获取到这条时间对应的result 经过修改:
select t.make_number, t.process_name, t.check_date, t.final_result from table1 t JOIN ( select make_number, process_name, max(check_date) check_date from ms_first_inspection where check_type =首检 group by make_number,process_name ) tmp on t.check_date = tmp.check_date and t.make_number = tmp.make_number and t.process_name = tmp.process_name where t.make_number=SCZL20221217001
主要采取了一个自查询,得出正确结果:
下一篇:
mssql数据库的备份与还原