如何选择并插入到另一个临时表
问题描述:
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
答
你需要为这个选择 但
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
在这2行有什么共同点?任何ID?如果返回的行数超过2行怎么办?你将如何处理它们? – Utsav
我从1个临时表中选择第一行和最后一行记录,并得到第一个表结果@ Utsav – michael
@winner_joiner需要帮助 – michael