在我将TIMEOUT插入数据库之前, 我想更新其相应的时间
where timeIN.id = timeOUT.id
合并的一个成功案例是:
when date.timeIN = date.timeOUT (just like UID = 3)
第二种情况是我遇到了麻烦
when date.timeIN != date.timeOUt ( i want to merge UID = 1 and UID = 2)
我无法使用日期作为查询的基础,因为它们不是 等于。是否可以查询date.timeIN何时添加1天?
示例:
----------------------------------------------------------------------------
| UID | EID | date | IN | OUT | CLASS
----------------------------------------------------------------------------
| 1 | X001 | 2013-06-03 18:00:00 | 6:00 PM | | IN
| 2 | X001 | 2013-07-03 05:58:00 | | 5:58 AM | OUT
| 3 | X002 | 2013-06-03 07:30:00 | 7:30 AM | 6:00 PM |
这个算法是什么..或者你可以给我一个关于它将如何完成的提示。我正在使用vb.net。
编辑: 我只想使用第二行中的超时值更新第一行的超时?我如何在vb和mysql中执行此操作?
----------------------------------------------------------------------------
| UID | EID | date | IN | OUT | CLASS
----------------------------------------------------------------------------
| 1 | X001 | 2013-06-03 18:00:00 | 6:00 PM | 5:58 AM |
答案 0 :(得分:0)
根据您的修改,这可以使用GROUP BY
和MIN()
来获取UID和日期,MAX()
来获取IN和OUT列:
select
min(uid) uid,
eid,
min(date) date,
max(`in`) `in`,
max(`out`) `out`
from yourtable
group by eid
选择MIN(日期)可能是也可能不是你想要的 - 这假设MIN(日期)与相应的IN记录一致(IN在OUT之前)。