Date Time Mode ID
2017-01-01 13:00:00.0000000 3 10
2017-01-01 14:00:00.0000000 1 10
2017-01-01 15:00:00.0000000 3 10
2017-01-01 15:30:00.0000000 1 10
这是临时表。我想配对这些数据。我只想得到以下输出:
InTime(Mode-3) OutTime(Mode-1)
13:00:00.0000000 14:00:00.0000000
15:00:00.0000000 15:30:00.0000000
我需要在上面的同一行中获得In Out时间
答案 0 :(得分:0)
更新至问题更新:
这有效,具体取决于数据和数据类型/架构(如果表的名称是 timeTable ):
InTime(Mode-3) | OutTime(Mode-1)
---------------------------|---------------------------
13:00:00.0000000 | 14:00:00.0000000
15:00:00.0000000 | 15:30:00.0000000
- outerQuery仅选择in-times mode = 3
innerQuery中的- 选择与所选时间相对应的下一个输出时间,并且仅返回第一个输出时间。按日期和时间排序,应该是下一个。 仅使用您的给定数据进行测试
输出
CREATE TABLE timeTable(
date DATE,
time TIME,
mode INTEGER,
id INTEGER
);
仅供参考:
我使用了这个表模式
$daysArray = array('Monday', 'Tuesday', 'Sunday');
$day = current($transport); // $day = 'Monday';
$day = next($transport); // $day = 'Tuesday';
$day = current($transport); // $day = 'Tuesday';
$day = prev($transport); // $day = 'Monday';
$day = end($transport); // $day = 'Sunday';
$day = current($transport); // $day = 'Sunday';