这是我的任务的简化版本。我有一个表,包含用户的进出时间戳。表列为:id,username,timeIn,timeOut。我想创建一个报告,按活动顺序排列或排除结果,并跟踪打印输出的输入或输出。到目前为止我唯一的想法是创建两个数组和inTimeArray和outTimeArray然后循环它们,
if (inTimeArray > outTimeArray) {
print time in: timestamp;
} else {
print timeout:;
}
输出 约翰在:时间 露西:时间 史蒂夫:时间 露西:时间 joel in:时间 史蒂夫:时间 露西:时间 等
答案 0 :(得分:1)
select *,
least(timein,timeout) as lower,
if(timein < timeout,'in_time','out_time') as description
from table
order by lower
答案 1 :(得分: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
无论哪种方式都有效。