我有一个查询,几乎可以获得我需要的一切。我在这个论坛的其他问题的帮助下建立了它,但最后一部分让我感到难过。
SELECT barcode, employee
,SEC_TO_TIME(SUM(TIMESTAMPDIFF(SECOND, dateandtime, (SELECT IFNULL(MIN(dateandtime),NOW())
FROM wwtlog b
WHERE b.barcode = a.barcode
AND b.dateandtime > a.dateandtime
AND b.inorout = 'IN'
)))) timeused
FROM wwtlog a
WHERE inorout = 'OUT' and barcode IN (SELECT t1.barcode FROM wwtlog t1
JOIN (SELECT barcode, MAX(dateandtime) dateandtime FROM wwtlog GROUP BY barcode) t2
ON t1.barcode = t2.barcode AND t1.dateandtime = t2.dateandtime WHERE inorout = 'IN')
GROUP BY barcode;
这给了我独特的条形码,包括员工和时间,但它给了我每个条形码的第一个员工记录,我需要最后一个员工。我不确定如何解决它。