SELECT * FROM (SELECT MAX(DATE_CHG + TIME_CHG) AS CHG_DATE, EMP_ID
FROM [table]
WHERE ADMIT_DATE = '05/07/2011'
GROUP BY EMP_ID
) AS MCHG
LEFT JOIN [table] AS CHG ON MCHG.EMP_ID = CHG.EMP_ID
ORDER BY CHG.EMP_ID
แต่การทำแบบนี้
SELECT MAX(DATE_CHG + TIME_CHG) AS CHG_DATE, EMP_ID
FROM [table]
WHERE ADMIT_DATE = '05/07/2011'
GROUP BY EMP_ID
จะได้ออกมาแถวล่าสุดแถวเดียวค่ะ
แต่เมื่อเอาไปใส่ใน From ก็จะได้ รหัสพนักงานนี้ ออกมาทุกแถวอยู่ดี เนื่องจากมีการนำ EMP_ID ไปหาอีกที
SELECT * FROM (SELECT MAX(CHG_DATE) AS CHG_DATE, EMP_ID
FROM [table]
WHERE ADMIT_DATE = '05/07/2011'
GROUP BY EMP_ID
) AS MCHG
LEFT JOIN [table] AS CHG ON MCHG.EMP_ID = CHG.EMP_ID AND MCHG.CHG_DATE = CHG.CHG_DATE
ORDER BY CHG.EMP_ID