SQL查询每月最新的数据,表A:amonth(时间),itemid(项目号),status(进度)
若同一个项目在每月都有更新几次进度,去每月最新的一次保留
SELECT DISTINCT A.*
FROM TableA A
INNER JOIN (
SELECT itemid, MAX(amonth) AS latest_amonth
FROM TableA
GROUP BY itemid
) B ON A.amonth = B.latest_amonth AND A.itemid = B.itemid
SELECT DISTINCT A.*
FROM A
INNER JOIN (
SELECT amonth, itemid, MAX(status) AS latest_status
FROM A
GROUP BY amonth, itemid
) B ON A.amonth = B.amonth AND A.itemid = B.itemid AND A.status = B.latest_status