1

こんにちは、私たちのシステムには以下のタイムカード構造があります。

ここに画像の説明を入力

start上記のタイムカードから、time_inANDendから比較しtime_out、 でグループ化するレポートを生成する必要がありemp_idます。

ここに画像の説明を入力

上記のように表示する方法についてのヒントは素晴らしいでしょう。

4

1 に答える 1

3

次のクエリはその仕事をします。

SELECT date, emp_id, 
    MAX(IF(event='t_in',time_in - start, 0)) AS 't1_in_diff',
    MAX(IF(event='t_out',time_out - end, 0)) AS 't1_out_diff',
    MAX(IF(event='b1_in',time_in - start, 0)) AS 'b1_in_diff',
    MAX(IF(event='b1_out',time_out - end, 0)) AS 'b1_out_diff',
FROM timecard 
GROUP BY date, emp_id; 

結果が負になる可能性がある (time_in/time_out が start/end よりも小さい可能性がある) 場合は、常に差よりも小さい値に 0 を設定する必要があります。

于 2012-09-09T08:00:12.727 に答える