0
У меня есть данные, которые выглядят как показано ниже. Первая таблица имеет столбец для даты и два столбца для представления одночасового окна времени. Вторая таблица имеет дату и время и информацию, которая должна быть агрегирована и сопоставлена, чтобы соответствовать соответствующему окну.SQL Server 2012 Aggregate on Split Date Time?
declare @timetable table (dateutc datetime , timestart time , timeend time)
insert into @timetable
select '2013-06-02 00:00:00.000' , '14:00:00.0000000' , '15:00:00.0000000'
union all select '2013-06-02 00:00:00.000' , '13:00:00.0000000' , '14:00:00.0000000'
union all select '2013-06-02 00:00:00.000' , '12:00:00.0000000' , '13:00:00.0000000'
union all select '2013-06-02 00:00:00.000' , '11:00:00.0000000' , '12:00:00.0000000'
declare @actiontable table (datetimeutc datetime , parentid int , actioncount int)
insert into @actiontable
select '2013-06-02 12:56:01.403' , 3 , 1
union all select '2013-06-02 13:15:00.000' , 3 , 1
union all select '2013-06-02 13:14:01.453' , 3 , 1
union all select '2013-06-02 13:14:01.363' , 4 , 2
union all select '2013-06-02 14:00:07.006' , 4 , 2
union all select '2013-06-02 14:00:07.006' , 4 , 2
union all select '2013-06-02 14:00:07.006' , 5 , 1
union all select '2013-06-02 15:16:01.403' , 5 , 1
union all select '2013-06-02 15:16:01.403' , 5 , 1
union all select '2013-06-02 15:16:01.403' , 5 , 2
Я потерял информацию о том, как «присоединиться» к наборам данных, чтобы они выглядели следующим образом. Все идеи/помощь оцениваются.
Спасибо!
/*
dateutc , timestart , timeend , actioncount
2013-06-02 00:00:00.000 , 14:00:00.0000000 , 15:00:00.0000000 , 9
2013-06-02 00:00:00.000 , 13:00:00.0000000 , 14:00:00.0000000 , 4
2013-06-02 00:00:00.000 , 12:00:00.0000000 , 13:00:00.0000000 , 1
2013-06-02 00:00:00.000 , 11:00:00.0000000 , 12:00:00.0000000 , 0
*/
вы правы, литая требуется. Я протестировал его ... но в sqlfiddle без изменений в sqlserver2012! – danihp
+1 Я не знал об изменениях в SQLS2012 – bummi
Этот ответ - чистая жара. Благодаря! – Snowy