您好我的系统上有以下时间卡结构。
从上面的考勤卡中,我需要生成一份报告,比较来自start
的{{1}}和来自time_in
的{{1}},然后将其归为end
。
关于如何像上面那样显示它的任何提示都会很棒。
答案 0 :(得分: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可能小于开始/结束),则应将0设置为始终小于差值的值。