id | year | month |
111 | 2012 | 1 |
111 | 2012 | 2 |
111 | 2013 | 1 |
112 | 2012 | 1 |
112 | 2012 | 2 |
112 | 2012 | 3 |
112 | 2012 | 4 |
注:每一组(id,year,month) 都是唯一的,我现在要 查询出
(111,2013,1)
(112,2012,4)
SELECT a.*
FROM A a,
(
SELECT a.id, max(b.year) as year
, max(a.month) AS month
FROM A a,
(
SELECT c.id
, max(c.year) year
FROM A c
GROUP BY c.payItemId
) b
WHERE a.id=b.id AND a.year=b.year
GROUP BY a.id
) b
WHERE a.id = b.id AND a.year=b.year AND a.month = b.month
用了3层嵌套才查出来,不知有没有简便的方法,欢迎各位大神指正