如何在已经很复杂的查询中获取一列的最后一条记录

时间:2016-10-26 21:47:45

标签: mysql

我有一个查询,几乎可以获得我需要的一切。我在这个论坛的其他问题的帮助下建立了它,但最后一部分让我感到难过。

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;

这给了我独特的条形码,包括员工和时间,但它给了我每个条形码的第一个员工记录,我需要最后一个员工。我不确定如何解决它。

0 个答案:

没有答案