【发布时间】:2017-07-27 09:24:13
【问题描述】:
所以我现在为此苦苦挣扎了一段时间。
员工只需在表上添加开始和结束时间clocktimes
我只想要该日期间隔内所有员工的结果,包括零(未显示的那些)。我也尝试使用 COALESCE,但没有得到想要的结果。
regular 字段是已经以单位表示的时间量,例如:3.5。
我的问题是显示结果为 0(零)的那些,该任务中没有小时数。
使用的查询:
SELECT
employees.employeeid,
employees.emp_external_id,
employees.status_id,
employees.firstname,
employees.middlename,
employees.lastname,
IFNULL(SUM(clocktimes.Regular), 0) AS sumoftime
FROM
employees
LEFT JOIN clocktimes ON employees.emp_external_id = clocktimes.EmployeeGUID
WHERE
employees.status_id <> 3 AND
date(clocktimes.StartDate) BETWEEN '2017-07-01' AND '2017-07-15'
GROUP BY
employees.employeeid
ORDER BY
employees.firstname ASC
【问题讨论】:
-
请发布示例数据,同时发布完整代码,这将失败,因为多个字段不在聚合函数内且未分组。
-
完成 SQLfiddle,在工作示例中“Aalbers Babu”应该返回 0 小时,这是我的目标。