|
小僧さん
こんにちわ。
時間計算をしていましたが行き詰まりました。
労働時間、残業時間はできたのですが、
22:00以降の残業計算で頭がこんがらがってしまいました。
(計算に用いている時間は数値が細かくなり過ぎないように切捨て、切上げしているものを使用しています。)
現在のSQLビューの全文は以下のようになっています。
SELECT 社員労働時間.社員番号, 社員労働時間.打刻日付, 社員労働時間.出勤時間, 社員労働時間.退勤時間,
DateAdd("n",15-Minute([出勤時間]) Mod 15,[出勤時間]) AS 出勤,
DateAdd("n",-Minute([退勤時間]) Mod 15,[退勤時間]) AS 退勤,
(DateDiff("n",[出勤],[退勤])-60)/60 AS 労働時間,
(DateDiff("n",[出勤],[退勤])-540)/60 AS 残業時間,
IIf(Hour([退勤])<=22,0,IIf(((DateDiff("n",[出勤],[退勤])-60)/60)>=540,(Hour([退勤])-22))) AS 深夜残業
FROM 社員労働時間;
IIf(Hour([退勤])<=22,0,IIf(((DateDiff("n",[出勤],[退勤])-60)/60)>=540,(Hour([退勤])-22))) AS 深夜残業
一応↑のように考えてみたのですが、22:00前は0で表示されますが、
22:00以降は未表示になります。
また、今のままでは正確に22:00を過ぎた状態から計算されていません。
もしかしたら、
IIfではなくBetween #〜# And #〜# で考えなければいけないような気もするのですが、
混乱してきました。
何処に誤りがあるのかご指摘をお願いします。
宜しくお願いします。
|
|