取出最新的某一字段重复的记录的SQL

数据库中显示的数据为:

 

先描述一下,id为自动增长列

 

我想取出resid相同的最新插入的那条记录,也就是说我需要显示的结果应该是:

 

可以通过这个SQL来实现:

 

1.SELECT resid,max(id) id FROM  T_PM_MaterialInOutDetail d
WHERE changedate <='2009-04-01'  group by resid

这部分SQL是按resid字段分组,把重复的先去掉,因为id是自动增加列,所以可以按照最大的ID一定是最新的记录来取出最新的ID和resid来。

 

2.select od.id,od.changedate,od.resid,od.num,od.price from T_PM_MaterialInOutDetail od where
exists (
    select * from (
        SELECT resid,max(id) id FROM  T_PM_MaterialInOutDetail d
        WHERE changedate <='2009-04-01'  group by resid
    ) inn where inn.id=od.id
) order by id desc

将两部分SQL按照exists关联起来。。用id来关联,取出想要的全部字段。

你可能感兴趣的:(sql)