- サブクエリと結合を使用する方法:
SELECT t1.*
FROM your_table t1
JOIN (
SELECT emp_code, MAX(fn_year) AS max_year
FROM your_table
GROUP BY emp_code
) t2 ON t1.emp_code = t2.emp_code AND t1.fn_year = t2.max_year;
- WINDOW関数を使用する方法:
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY emp_code ORDER BY fn_year DESC) AS rn
FROM your_table
) t
WHERE rn = 1;
- EXISTS句を使用する方法:
SELECT t1.*
FROM your_table t1
WHERE NOT EXISTS (
SELECT 1
FROM your_table t2
WHERE t2.emp_code = t1.emp_code AND t2.fn_year > t1.fn_year
);
これらのコード例では、"your_table"というテーブル名を使用しています。必要に応じて、実際のテーブル名に置き換えてください。