Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不带聚合函数的Pivot临时表_Sql_Sql Server_Pivot Table - Fatal编程技术网

Sql 不带聚合函数的Pivot临时表

Sql 不带聚合函数的Pivot临时表,sql,sql-server,pivot-table,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

这是一个临时表。我想将这些数据配对。我只需要以下输出:

          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

我需要将上述同一行的输入/输出时间更新为问题更新:
这取决于数据和数据类型/模式(如果表的名称是时间表):

  • outerQuery仅选择in timesmode=3
  • in innerQuery选择与所选in时间对应的下一个out时间,并仅返回第一个out时间。因为是按日期和时间订购的,所以应该是下一个。仅使用给定数据进行测试
输出:

    SELECT time AS 'InTime(Mode-3)',
      (SELECT TOP 1 time FROM timeTable
          WHERE mode = 1 
            AND id = outerTable.id 
            AND date = outerTable.date 
            AND time > outerTable.time 
          ORDER BY date, time) AS 'OutTime(Mode-1)' 
    FROM timeTable AS outerTable 
    WHERE mode = 3
仅供参考:
我使用了这个表模式

         InTime(Mode-3)      |     OutTime(Mode-1) 
  ---------------------------|---------------------------
       13:00:00.0000000      |    14:00:00.0000000
       15:00:00.0000000      |    15:30:00.0000000

我们需要比您提供的更多的信息来生成答案。如何确定产生预期输出的顺序和分区?所有日期和ID都相同,并且模式似乎被忽略。这与您想要的类似吗?首先是同一用户ID-10的临时表,时间显示为模式3表示打卡时间,模式1表示打卡时间。我只想将这些数据配对。对于打卡时间和打卡时间(模式3)打卡时间(模式1)13:00:00.0000000 14:00:00.0000000 15:00:00.0000000 15:30:00.0000000可能是真棒的副本!为我工作谢谢
         InTime(Mode-3)      |     OutTime(Mode-1) 
  ---------------------------|---------------------------
       13:00:00.0000000      |    14:00:00.0000000
       15:00:00.0000000      |    15:30:00.0000000
 CREATE TABLE timeTable(
     date DATE,
     time TIME,
     mode INTEGER,
     id INTEGER
 );