(続き)
■DML
SELECT x.氏名
, x.組織名
, Min( x.発令日 ) As 発令日
, Max( Nz( DateAdd( 'd', -1, y.発令日 ), #12/31/2099# ) ) As 失効日
FROM アクションテーブル x
LEFT JOIN アクションテーブル y
ON x.氏名 = y.氏名
AND x.GSeq日付 = y.GSeq日付 - 1
GROUP BY x.氏名
, x.組織名
, x.GSeq日付 - x.GSeq組織
ORDER BY x.氏名
, Min( x.発令日 )
;
■結果
氏名 | 組織名 | 発令日 | 失効日 |
---|---|---|---|
山田 花子 | 営業 | 2022/01/01 | 2023/03/31 |
山田 花子 | 経営企画 | 2023/04/01 | 2023/08/31 |
山田 花子 | 営業 | 2023/09/01 | 2024/03/31 |
山田 花子 | 総務 | 2024/04/01 | 2099/12/31 |
青山 太郎 | 人事 | 2014/04/01 | 2015/03/31 |
青山 太郎 | 経営企画 | 2015/04/01 | 2017/09/30 |
青山 太郎 | 法務 | 2017/10/01 | 2021/03/31 |
青山 太郎 | 人事 | 2021/04/01 | 2022/03/31 |
青山 太郎 | 総務 | 2022/04/01 | 2099/12/31 |
通報 ...