没有聚合函数的Pivot临时表

时间:2017-02-28 05:07:20

标签: sql sql-server pivot-table

          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时间

1 个答案:

答案 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';