| |
▼わん さん:
こんにちは。
>その後、落ち着いて考えてみました。
同じく落ち着いて考えてみました。
SELECT 社員労働時間.社員番号,
社員労働時間.打刻日付,
DateAdd("n",15-Minute([出勤時間]) Mod 15,[出勤時間]) AS 出勤,
DateAdd("n",-Minute([退勤時間]) Mod 15,[退勤時間]) AS 退勤,
DateDiff("n",[出勤],[退勤])/60-1 AS 労働時間,
IIf(Hour([退勤]) Between 5 And 22,DateDiff("n",[出勤],[退勤]),
DateDiff("n",[出勤],CDate([打刻日付] & ' 22:00')))/60-1 AS 日勤,
IIf(Hour([退勤]) Between 5 And 22,0,
DateDiff("n",CDate([打刻日付] & ' 22:00'),[退勤]))/60 AS 夜勤,
IIf([日勤]>8,[日勤]-8,0) AS 日勤残業,
IIf([労働時間]>9,DateDiff("n",[出勤],[退勤])/60-[日勤残業]-9,0) AS 夜勤残業
FROM 社員労働時間;
10件くらい色々データを入れて検証した結果は問題なさそうなのですが、
わんさん の実際使われているデータでも問題なければ良いのですが…。
|
|