У меня есть запрос и данные, из которых мне нужно создать расписание.Запрос расписания SQL Server
Мой текущий запрос ниже:
SELECT contract.lect_code code1,
contract.coll_code code2,
line_date,
start_time,
end_time,
DATEPART(DW,line_date) AS day_number,
datename (dw,line_date) AS nameofday,
convert(varchar(8),start_time,108) AS start_time2,
convert(varchar(8),end_time,108) AS end_time2
FROM bk_line
INNER JOIN contract ON contract.contract_no = bk_line.contract_no
WHERE line_date BETWEEN '2013/09/23' AND '2013/09/27'
AND coll_code = 'TEL01'
AND bk_line_status = 'CE'
--And lect_code = 10430973
Это дает мне данные в следующем формате:
Мне нужен способ ломают раз в 15 минут слотов для каждого code1 и линии даты ,
Что-то вроде этого:
code1 | code2 | line_date | 0900worked | 0915worked | 0930worked |
где значения в 0900worked
будет T
или F
.
-
EDIT
Мне нужно сгруппировать периоды от code1 и line_date. Поэтому в приведенном выше примере 1045096
работал с двумя сеансами на 2013/09/25
. Мне нужно, чтобы обе сессии отображались в одной строке со всеми рассчитанными периодами.
+1 пятно на ... может быть большим вопросом, если на десять интервалов ... но полагает, что это природа зверя – whytheq
Спасибо за это. Я добавил его в свой код, и он отлично работает. У меня другая проблема. Я опубликую его как редактирование. – evoandy
Вы можете заключить фразу в 'max (case ... end) как [0900worked]'. Поскольку '' T '>' F'', это вернет true, если какая-либо строка в группе включала интервал 9: 00-9: 15. – Andomar