【发布时间】:2018-09-20 04:55:25
【问题描述】:
当一个的结束时间是另一个的开始时间时合并行,如果不是,那么就像在 SQL 中一样。 例如:
DATE_SRNO start End Actual_Date
1 2018-08-04 12:22:00.000 2018-08-04 13:22:00.000 2018-08-04
1 2018-08-04 13:22:00.000 2018-08-04 16:46:00.000 2018-08-04
1 2018-08-04 20:17:00.000 2018-08-04 21:16:00.000 2018-08-04
1 2018-08-04 22:12:00.000 2018-08-04 22:28:00.000 2018-08-04
2 2018-08-05 19:08:00.000 2018-08-05 20:00:00.000 2018-08-05
2 2018-08-05 20:00:00.000 2018-08-05 20:52:00.000 2018-08-05
3 2018-08-20 07:27:00.000 2018-08-21 06:00:00.000 2018-08-20
3 2018-08-21 03:36:00.000 2018-08-21 04:36:00.000 2018-08-20
3 2018-08-21 04:36:00.000 2018-08-21 06:00:00.000 2018-08-20
预期输出:
Sr.No start End Actual_Date
1 2018-08-04 12:22:00.000 2018-08-04 16:46:00.000 2018-08-04
1 2018-08-04 20:17:00.000 2018-08-04 21:16:00.000 2018-08-04
1 2018-08-04 22:12:00.000 2018-08-04 22:28:00.000 2018-08-04
2 2018-08-05 19:08:00.000 2018-08-05 20:52:00.000 2018-08-05
3 2018-08-20 07:27:00.000 2018-08-21 06:00:00.000 2018-08-20
3 2018-08-21 03:36:00.000 2018-08-21 06:00:00.000 2018-08-20
我尝试了以下查询,但没有得到确切的输出。
SELECT
T1.Malf_start,
T2.MalfEnd,
T1.COMPARE_DATE
FROM
#temp T1
INNER JOIN
#temp T2
ON T2.DATE_SRNO = T1.DATE_SRNO
AND T2.Malf_start = T1.MalfEnd
下面是我得到的结果。
start End Actual_Date
2018-08-04 12:22:00.000 2018-08-04 16:46:00.000 2018-08-04
2018-08-05 19:08:00.000 2018-08-05 20:52:00.000 2018-08-05
2018-08-21 03:36:00.000 2018-08-21 06:00:00.000 2018-08-20
【问题讨论】:
-
如果不是,那么就像在 SQL 中一样?这是什么意思?
-
请告诉我们正在使用哪个数据库。 “SQL”本身并不能告诉我们为您的问题选择正确的语法。顺便说一下,“SQL”并不意味着“SQL Server”。
-
这是 SQL Server 2017
标签: sql sql-server sql-server-2017