LogicalReaderType という名前の列を持つ sql テーブルがあり、その日に誰かがバッジを付けているかどうかを判断します。その時点でのタイムスタンプである BadgeTime という別の列があります。一日の労働時間を計算したい。
2 つの注意事項:
- 時々、人々は間違いを犯してバッジアウト (その日の時間を完了) した後、バッジインせずにゲートに戻ってきます。そして再びバッジアウトします。スクリプトが最良の推測を行うか、最初のバッジを選択して 2 番目のバッジを無視できるようにしたいと考えています。
- 人々は 3 交代制で働くため、午前 12 時を超えて計算できるほどスマートである必要があります。
これは、私が一緒に働く 1 人の従業員の 1 週間分の SQL 出力の例です。
BadgeNumber LastName Initials LogicalReaderType BadgeTime EmployeeNumber
153568488433 Doe J 3 41253.32631 54822
153568488433 Doe J 4 41253.68821 54822
153568488433 Doe J 3 41254.3187 54822
153568488433 Doe J 3 41254.31877 54822
153568488433 Doe J 4 41254.72185 54822
153568488433 Doe J 3 41255.32757 54822
153568488433 Doe J 4 41255.58274 54822
153568488433 Doe J 3 41255.6378 54822
153568488433 Doe J 4 41255.71527 54822
153568488433 Doe J 3 41256.31372 54822
153568488433 Doe J 4 41256.55927 54822
153568488433 Doe J 3 41256.56036 54822
153568488433 Doe J 4 41256.69249 54822
153568488433 Doe J 3 41257.3234 54822
153568488433 Doe J 4 41257.37054 54822
153568488433 Doe J 4 41257.69721 54822
出力例として、次のようなテーブルが必要です。
In Out WorkTime
41253.326308 41253.688206 0.361898
41254.318704 -41253.318704
41254.318773 41254.721852 0.403079
41255.327569 41255.582743 0.255174
41255.637801 41255.715266 0.077465
41256.313715 41256.559271 0.245556
41256.560359 41256.692488 0.132129
41257.323403 41257.370544 0.047141
41257.697211 41257.697211
詳細を提供できる場合はお知らせください。
編集:利用可能な他のフィールドのいくつかを追加しました。