此查询目前从数据库中选择过去两周内工作时间少于8小时的人员,这正如我所希望的那样,我现在想知道如何过滤掉已经工作的员工在前一天(不允许连续工作日)
SELECT e.first_name, e.last_name, SUM(ABS(TIMESTAMPDIFF(HOUR, s.started_at,
s.ended_at))) as shift_hours
FROM employee e, shift s
WHERE e.id = s.employee_id
AND s.started_at BETWEEN (NOW() - INTERVAL 2 WEEK) AND NOW()
GROUP BY e.id
HAVING shift_hours < 8
AND shift_hours < 4 s.started_at BETWEEN (NOW() - INTERVAL 1 DAY) AND NOW();
(底线是我试图完成此操作的地方,但编译器不喜欢语法,并且不会告诉我它到底出错的地方)
我在这里思考正确的方向吗?
谢谢!
编辑:SQLFiddle http://sqlfiddle.com/#!9/717c3e