如何获取sql表中的最后一条记录

问题描述:

我在考勤表中有三个条目,但我需要从考勤表中打印最后一个条目的条目。我在单独的查询和打印列表中分别查询计算了总持续时间任何人都请帮我解决这个问题。如何获取sql表中的最后一条记录

查询打印总时间:

select SEC_TO_TIME(sum(case when a.endtime IS NULL 
         then time_to_sec(TIMEDIFF(NOW(),a.starttime)) 
         else time_to_sec(a.duration) 
         end) 
        ) as duration 
from attendance a 
left join staff s on a.staffid=s.id 
left join company c on a.companyid=c.companyid 
where DATE_FORMAT(a.createdon, '%Y/%m/%d') = DATE_FORMAT('2017-04-04', '%Y/%m/%d') and 
(a.employeecode ='A101' OR 'A101'='') and 
(a.companyid=0 OR 0=0) 
group by a.employeecode,a.companyid order by a.id desc 

查询打印细节:

select a.id, 
     a.starttime, 
     a.endtime, 
     a.startlocation, 
     a.endlocation, 
     a.duration, 
     a.companyid, 
     a.employeecode, 
     a.staffid, 
     a.createdon, 
     a.createdby, 
     a.lastmodifiedon,  
     a.reason, 
     a.comments, 
     s.name as staffName, 
     c.company_name as companyName 
from attendance a 
left joinstaff s on a.staffid=s.id 
left join company c on a.companyid=c.companyid 
where DATE_FORMAT(a.created_on, '%Y/%m/%d') = DATE_FORMAT('2017-04-04', '%Y/%m/%d') and 
(a.employeecode ='A101' OR 'A101'='') and 
(a.company_id=0 OR 0=0) 
group by a.employeecode,a.companyid order by a.id desc 
+0

可能重复[如何选择SQL中最后一个表的记录?](http://*.com/questions/5191503/how-to-select-the-last-record-of-一个表型-SQL) – mxr7350

我通过设置结束时间为空了输出。

`select SEC_TO_TIME(sum(case when a.endtime IS NULL then time_to_sec(TIMEDIFF(NOW(),a.starttime)) else time_to_sec(a.duration) end)) 
from attendance a left join staff s on a.staffid=s.id 
left join company c on a.companyid=c.companyid 
where DATE_FORMAT(a.createdon, '%Y/%m/%d') = DATE_FORMAT('', '%Y/%m/%d') and 
(a.employeecode ='' OR ''='') and 
(a.companyid=0 OR 0=0) 
group by a.employeecode,a.companyid order by a.id desc`