|
いつもお世話になっています。
パート社員の契約歴を管理しているのですが、会社の諸事情により、雇用契約を年度ごとかつ細切れに結んでいる状態です。
現在の管理方法は、
T_パート契約履歴に、契約履歴を入力していき、必要に応じて集計クエリで社員ごとの横並びの一覧などにしています。
社員コード 採用 採用日 退職 退職日
0001 1901 2007/4/1 1901 2007/9/30
0001 1902 2007/11/1 1902 2008/3/31
0001 2001 2008/4/1 2001 2008/6/30
0002 1901 2007/5/1 1901 2007/8/31
0002 1902 2007/12/1 1902 2008/2/29
0002 2001 2008/4/1 2001 2008/6/30
※「採用」「退職」の「1901」は、19年度の1回目の契約という意味で入力。
※最大で年度に4回契約することあり。
で、採用日により社員を抽出する場合があるのですが、
採用日2008/4/1で抽出した場合、上の例で行くと、0001 0002とも抽出してしまうのですが、実質的には、0001の人は、年度切り替えのため契約を分けているだけで、実質上の契約は、2007/11/1〜2008/6/30となっています。で、0002の人は、2008/4/1〜2008/6/30です。この例で行くと、採用日2008/4/1で 0002の人のみを抽出したいのです。
上記のようなデータから、
社員コード 直近採用日 直近退職日
0001 2007/11/1 2008/6/30
0002 2008/4/1 2008/6/30
というようなデータが取得できないものかと頭を悩ませているのですが、なかなか思いつきません。採用日の最大を取得して、その前日と前の行の退職日が一致すれば、その前の採用日を取得する・・みたいな感じでどうにかできないかと考えているのですが、さらにその前の退職日とつながっている場合もあったりで、混乱しています。
現在は、継続採用者という形でチェックを入れることにより、該当の抽出を行っていますが、チェックし忘れもあるので、入力している履歴を使って抽出できればと思っています。
何かよい方法がありますでしょうか?
または、履歴の管理方法を変更したほうがよければ、そのあたりのアドバイスでもいいのでよろしくお願いします。
(Win Accessとも2000)
|
|