Try thisdeclare @sample table (fromtime datetime, totime datetime, status varchar(20))insert @sampleselect '08:05', '09:20', 'normal' union allselect '10:45', '12:05', 'normal' union allselect '15:15', '17:45', 'critical'-- show the dataSELECT MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '07:00', '07:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '7a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '07:15', '07:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '7b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '07:30', '07:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '7c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '07:45', '07:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '7d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '08:00', '08:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '8a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '08:15', '08:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '8b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '08:30', '08:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '8c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '08:45', '08:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '8d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '09:00', '09:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '9a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '09:15', '09:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '9b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '09:30', '09:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '9c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '09:45', '09:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '9d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '10:00', '10:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '10a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '10:15', '10:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '10b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '10:30', '10:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '10c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '10:45', '10:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '10d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '11:00', '11:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '11a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '11:15', '11:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '11b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '11:30', '11:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '11c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '11:45', '11:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '11d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '12:00', '12:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '12a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '12:15', '12:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '12b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '12:30', '12:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '12c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '12:45', '12:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '12d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '13:00', '13:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '13a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '13:15', '13:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '13b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '13:30', '13:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '13c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '13:45', '13:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '13d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '14:00', '14:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '14a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '14:15', '14:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '14b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '14:30', '14:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '14c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '14:45', '14:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '14d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '15:00', '15:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '15a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '15:15', '15:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '15b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '15:30', '15:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '15c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '15:45', '15:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '15d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '16:00', '16:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '16a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '16:15', '16:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '16b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '16:30', '16:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '16c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '16:45', '16:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '16d', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '17:00', '17:14') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '17a', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '17:15', '17:29') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '17b', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '17:30', '17:44') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '17c', MAX(CASE WHEN dbo.fnTimeOverlap(FromTime, ToTime, '17:45', '17:59') > 0 THEN LEFT(Status, 1) ELSE '' END) AS '17d'FROM @Sample
The function dbo.fnTimeOverlap is found here http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=77202Peter LarssonHelsingborg, Sweden