各ユーザーの時間を計算しようとしています。 1人のユーザーが1日に複数回チェックインとチェックアウトを行うことができます。イベントがINをチェックして、チェックアウトのほかに複数のレコードのタイムスタンプ操作
、私は2つ以上(ビジネスやプライベートな)を持っています。
ユーザーが最後にCHECK OUTとの間に最後のチェックと最後のチェックで同じ日に、時間との間のイベント・ビジネスをOUTあり、チェックインの場合は、労働時間とみなされるであろう。
彼はCHECK OUTの後に最後のレコードなどのビジネスイベントを持っている場合、それは(時間をチェック - IN + BUSINESS = 8を確認してください)時間を計算します。
テーブルには、各ユーザーのイベントを記録する場所があります。
CASE 1
ID USERID TIME COMMAND
1 1 2016-11-29 08:00:00 CHECK_IN
2 1 2016-11-29 10:05:14 CHECK_OUT
3 1 2016-11-29 12:22:14 BUSINESS
4 1 2016-11-29 13:32:14 CHECK_IN
5 1 2016-11-29 16:00:00 CHECK_OUT
私は、ユーザーが特定の日の合計8労働時間を持っていることを取得する必要があり、上記の表によります。 (ID 3)の最後のチェックアウト(ID 2)と最終チェックの間の時間以上
CASE場合は2
ID USERID TIME COMMAND
1 1 2016-11-29 08:00:00 CHECK_IN
2 1 2016-11-29 10:05:14 CHECK_OUT
3 1 2016-11-29 12:22:14 PRIVATE
4 1 2016-11-29 13:32:14 CHECK_IN
5 1 2016-11-29 16:00:00 CHECK_OUT
は労働時間にカウントされません。
私は月ごとに各従業員の勤務時間を計算するスクリプトを作成しようとしています。
私が最も近いCHECK_INでCHECK_OUT時間を減算する方法についてのトラブルを抱えていたユーザが、一日のために複数のレコードを持っている場合、その問題が発生します。
のために一人のユーザーのための行と列を
ビジネスやプライベートにすることができます。ビジネスであれば、PRIVATEユーザーがその日に0時間を取得すると、その日に8時間を受け取ります。しかし、もし彼が仕事を辞めれば、常にCHECK_OUTが最初にエントリーされ、彼が仕事に戻るとCHECK_INになります。しかし、1日に多くのビジネス・エントリーを持つことができます – user3651819
ここでは、あなたのケースだけに関連する多くの論理があるようです。最初にこれを解決しようとする必要があります。次に、何かにこだわったときに特定の質問をしてください。「どこから始めたらいいのかわかりません」と言っている(あなたの質問から得た感じです)、実際にはあまり適していません。 –