2017-04-04 13 views
0

私は出席テーブルに3つのエントリがあります。私は出席テーブルからIDの最後のエントリを印刷する必要があります。私は別のクエリ誰でもこの問題を解決するのを助けてください。合計時間を印刷する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://stackoverflow.com/questions/5191503/how-to-select-the-last-record-of- a-table-in-sql) – mxr7350

答えて

0

私はヌルとして終了時刻を設定することにより、出力を得ました。

`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` 
関連する問題