Slide 40
Slide 40 text
期間を計算するSQL
(MySQL 8.0.35 で試しました)
SELECT
社員ID, 所属名, 異動日 AS 開始日,
COALESCE(
LEAD(異動日) OVER (PARTITION BY 社員ID ORDER BY
異動日) - INTERVAL '1 day',
CURRENT_DATE()
) AS 終了日
FROM 異動履歴
ORDER BY 社員ID,異動日;
LEAD() OVER () で1行下の値を取得
その後 -1 日する
COALESCEで
1行下がないときは現在の日付を使う