今天碰到一個需求是顯示簽核歷史記錄表中最新一次簽核完成的歷史記錄在頁面展示出來,然後通過sql實現下來sql語句如下進行記錄:
SELECT b.id AS "id", b.order_no AS "orderNo", b.sign_level AS "signLevel", b.sign_name AS "signName", b.sign_user AS "signUser", b.sign_result AS "signResult", b.sign_ip AS "signIp", b.sign_date AS "signDate", b.remark AS "remark" FROM sign_history b WHERE b.sign_date IN ( SELECT max(c.sign_date) FROM sign_history c WHERE c.order_no = 'JJC191028009' GROUP BY c.sign_level ) AND b.order_no = 'JJC191028009' ORDER BY b.sign_date ASC
根據簽核節點分組查出最新的每個簽核通過的時間點,使用單號做為限制條件,然後把查出的時間作為再次查詢的條件進行排序.