如何选择并插入到另一个临时表

问题描述:

ID LogDate  LogTime   Mode 

    1 2017-02-23 19:30:00.0000000 1 
    4 2017-02-24 08:00:00.0000000 0 

我得到了上述结果。如何选择并插入到另一个临时表

我需要得到输出如下

LogDate  InTime    OutTime 

    2017-02-23  19:30:00.0000000 08:00:00.0000000 

更新问题 其实下表是原来的table.From这个表我需要得到第一个和最后一个记录并显示第一logTime Description该条作为银泰和第二logTime Description该条作为OutTime作为输出

ID LogDate  LogTime  InoutMode  
    1 2017-02-23 19:30:00.0000000 1 
    2 2017-02-23 23:00:00.0000000 0 
    3 2017-02-23 23:30:00.0000000 1 
    4 2017-02-24 08:00:00.0000000 0 
+0

在这2行有什么共同点?任何ID?如果返回的行数超过2行怎么办?你将如何处理它们? – Utsav

+0

我从1个临时表中选择第一行和最后一行记录,并得到第一个表结果@ Utsav – michael

+0

@winner_joiner需要帮助 – michael

你需要为这个选择 但

primery关键
 SELECT LogDate, 
    LogTime AS InTime, 
    (
     SELECT TOP 1 t1.LogTime 
     FROM yourTable AS t1 
     WHERE Mode = 0 
    )  AS OutTime FROM yourTable WHERE Mode = 1 
+0

还需要时差作为另一列@Meysam Chegini – michael

使用此

http://sqlfiddle.com/#!6/c74ea/5

WITH cte AS 
    (SELECT t.*, 
      row_Number() over (
          ORDER BY logdate,logtime) AS inc, 
      row_Number() over (
          ORDER BY logdate DESC,logtime DESC) AS dec 
    FROM table1 t) 
SELECT t1.logdate, 
     t1.logtime AS intime, 
     t2.logtime AS outtime 
FROM 
    (SELECT logdate, 
      logtime, 
      inc 
    FROM cte 
    WHERE inc=1) t1 
INNER JOIN 
    (SELECT logdate, 
      logtime,dec 
    FROM cte 
    WHERE dec=1) t2 ON t1.inc=t2.dec 
+0

,你的答案是正确的,并为所有记录完美的输出。 – Mansoor