私は従業員のタイムシートを管理するアプリケーションを持っています。Oracle:日付フィールドに基づいてレコードにギャップがあるかどうかを確認するにはどうすればよいですか?
私のテーブルは次のようになります。
TIMESHEET
TIMESHEET_ID
EMPLOYEE_ID
etc
TIMESHEET_DAY:
TIMESHEETDAY_ID
TIMESHEET_ID
DATE_WORKED
HOURS_WORKED
たびシートは、14日間の期間をカバーするので、各タイムシートレコードの14件のTIMESHEET_DAYレコードがあります。誰かが休暇を取った場合、その14日間に何時間も働いていなければ、タイムシートを入力する必要はありません。
ここで、従業員が過去6ヶ月間に7日間のギャップを取っているかどうかを判断する必要があります。これは、0時間で7つの連続したTIMESHEET_DAYレコードを検索しなければならないことを意味します。または、レコードが提出されず、0時間で提出されたレコードの組み合わせで7日間の期間が検索されなければなりません。その場合は、最後のTIMESHEET_DAYレコードのDATE_WORKEDと時間を知る必要があります。
アプリケーションはasp.netですので、すべてのTIMESHEET_DAYレコードを取得して繰り返し処理できますが、SQLでこれを行うにはより効率的な方法が必要です。
を正直なところ、私もどこを開始するのか分かりません。 – chris
私はLAG関数でこれにアプローチします。もし私が時間を取れば、私は試してみるかもしれません。 – Randy
@Randy:私はこのアプローチを検討していますが、BIの機能に関する多くの経験はないので、どんな提案も感謝します。 – chris