如何在不使用top或last函数的情况下获取sqlyog数据库中的最后一个插入列?

时间:2013-06-11 18:20:37

标签: mysql sql sqlyog

我有一个名为tbltimpunch的表,其中包含以下列:

  • employeeID(不是主键/非自动公司)
  • dateoftime(时间)
  • timein(员工输入的时间)
  • 超时(时钟输出的时间)

可以使用以下mysql创建:

CREATE TABLE tbltimpunch(
    `employeeID` varchar(10),
    `dateoftime` datetime,
    `timein` time,
    `timeout` time
);

如何获得员工的最后timeintimeout输入?

1 个答案:

答案 0 :(得分:0)

这个怎么样?

SELECT employeeID, MAX(timein) AS lastIn, MAX(timeout) AS lastOut
FROM tbltimpunch
GROUP BY employeeID;

这将返回每个员工(包含表中数据)的行的结果集,以及他们的上次timein和超时值。

更新

此解决方案可能更贴近您的目标:

SELECT t1.* FROM tbltimpunch t1
LEFT JOIN tbltimpunch t2 ON t1.employeeID=t2.employeeID
GROUP BY t1.employeeID, t1.dateoftime
HAVING t1.dateoftime=MAX(t2.dateoftime);

这将为每个具有最新dateoftime值的员工返回一行。

尝试小提琴,在这里:http://sqlfiddle.com/#!2/ca4f3/1/0