是高手的,进来!查询最近两条记录,感觉很难,各位高手,有什么方法最快?
表A:
id class date TestResult
1 2 2004-1-4 2.4
2 2 2003-11-4 2.2
3 1 2004-5-5 2.1
4 3 2004-4-4 2.5
5 1 2003-12-3 2.5
6 2 2004-3-5 2.3
.......
表B:
class name
1 aaa
2 bbb
3 ccc
....
现在我需要查询:
name 上次测定(最后的前一次) 最后测定 差异
1 2.5 2.1 -0.4
2 2.4 2.3 -0.1
3 null 2.5 null
我知道可以这样写:
select name,(select max(TestResult)
from a where date=(select max(TestResult)
from a where date < (select max(TestResult) from a))),
(select max(TestResult)
from a where date=(select max(TestResult) from a)),
(select max(TestResult)
from a where date=(select max(TestResult) from a)-
(select max(TestResult)
from a where date=(select max(TestResult)
from a where date < (select max(TestResult) from a))) from b
请问各位高手,是否还有更快的写法?