根据日期插入和更新表格行

时间:2013-06-05 03:13:11

标签: mysql vb.net

在我将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  |   

1 个答案:

答案 0 :(得分:0)

根据您的修改,这可以使用GROUP BYMIN()来获取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之前)。