我有这样一个表格:
CREATE TABLE #TEMP (Name VARCHAR(255), START_TIME datetime, END_TIME datetime);
INSERT INTO #TEMP VALUES( John , 2012-01-01 09:00:01 , 2012-01-01 12:00:02 )
INSERT INTO #TEMP VALUES( John , 2012-01-01 09:40:01 , 2012-01-01 11:00:02 )
INSERT INTO #TEMP VALUES( John , 2012-01-02 05:00:01 , 2012-01-02 05:15:02 )
INSERT INTO #TEMP VALUES( David , 2012-01-04 05:00:01 , 2012-01-04 05:15:02 )
INSERT INTO #TEMP VALUES( David , 2012-01-05 07:01:01 , 2012-01-05 15:15:02 )
SELECT *
FROM #TEMP
DROP TABLE #TEMP
数据是:
Name START_TIME END_TIME
1 John 2012-01-01 09:00:01.000 2012-01-01 12:00:02.000
2 John 2012-01-01 09:40:01.000 2012-01-01 11:00:02.000
3 John 2012-01-02 05:00:01.000 2012-01-02 05:15:02.000
4 David 2012-01-04 05:00:01.000 2012-01-04 05:15:02.000
5 David 2012-01-05 07:01:01.000 2012-01-05 08:15:02.000
鉴于许多方面的话, 页: 1 在本表格中按代码”分类的组别,在6小时前后的窗口中重叠的时间。 因此,在上述表格中,各行各栏:<1>和<2> 由于时间范围重叠,将合并成单行:
John 2012-01-01 06:00:01.000 2012-01-01 18:00:02.000
<4
和5
>将合并,因为从07:01:01.000
中减去6小时后,即落到“滚动编码”<4之窗。
在一个包含大约100万头的大桌上,这样做是否有好办法?