- ベストアンサー
残業代計算システム
6/1~6/31までをBETWEEN で取り出してます。 時間外労働の場合、1日8時間以上、週に40時間以上に対し時間外労働手当てをつけるのですが、この場合1日分のデータと7日間分のデータを取り出すことになります。 この場合、単純に7日ごとに更にbetween でSQL 文を追加したら良いのでしょうか? 何か他に方法があれば考え方を学ばせて頂きたいと思い質問しました。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>6/1~6/31までをBETWEEN で取り出してます。 6月は30日までですよ(笑) >時間外労働の場合、1日8時間以上、週に40時間以上に対し時間外労働手当てをつけるのですが、 >この場合1日分のデータと7日間分のデータを取り出すことになります。 仕様が練られていないですね (1)日単位と週単位でダブルバインドされていると正確にはだせません たとえば、6時間-6時間-8時間-10時間-10時間働いた場合 日単位での残業は2時間×2日で4時間ですが、週単位では40時間以内なので0時間です 逆に一日6時間×7日働いたら、2時間残業とするのかとか・・・ 日単位と週単位どちらが優先されるのかなど決め込みが必要です (2)週単位で処理すると月単位では正確に計算できません 週単位でオーバーする場合、月またぎの週があるとどうするか提示されていません (3)日をまたぐ処理などもないと 仮に夕方6時からよく朝6時まではたらいても、日付でみると前日に6時間、 後日に6時間なので残業になりません。ふつうは8時間+4時間残業ですね 休憩時間があったばあい前日につけるか後日につけるかなども変わってきます (4)そもそも週とは 月曜~日曜、日曜~土曜、もしくは特殊な週間スケジュールなのかにもよります (5)その他 休日・祝祭日の取り扱いをどうするか(時間外ではなく特別出勤?) 深夜残業などどうするか 36協定や社内規定、コンプライアンスがらみなど労基問題も反映しないといけないでしょう このようにいろいろなケースを挙げて、それぞれにどう対応するか仕様が提示されないと 具体的なプログラミングの着手はできないですね