2012-01-05 43 views
0

這是我的任務的簡化版本。我有一張表格,裏面有用戶輸入和輸出時間戳。表列是:id,用戶名,timeIn,timeOut。我想要創建一個報告,按照活動的順序對結果進行排序或排序,並在記錄打印輸出時對其進行跟蹤。我唯一的想法到目前爲止是創建兩個數組和inTimeArray和outTimeArray,然後通過他們循環,mysql查詢,訂購兩個日期列並跟蹤它來自的原始列

if (inTimeArray > outTimeArray) { 
    print time in: timestamp; 
} else { 
print timeout:; 
} 

輸出 約翰:時間 露茜:時間 史蒂夫在:時間 露西出來:時間 喬爾在:時間 史蒂夫出來:時間 露茜:時間 等

+0

我們可以得到更多的細節嗎?何時使用'timeIn',何時使用'timeOut'? – Eric 2012-01-05 16:08:50

回答

1

您可以在查詢中使用case聲明:

select 
    id, 
    username, 
    timeIn, 
    timeOut, 
    case when timeIn > timeOut then timeIn else timeOut end as timestamp 
from 
    users 

然後,您可以比較timestamp = timeIn或timeOut。此外,您可以添加另一列:

case when timeIn > timeOut then 0 else 1 end as IsTimeOut 

無論哪種方式的工作,真的。

1
select *, 
least(timein,timeout) as lower, 
if(timein < timeout,'in_time','out_time') as description 
from table 
order by lower