Нечто подобное может привести вас в нужном направлении ...
SELECT
itemRef,
itemStatus,
CASE WHEN CONVERT(TIME, statusStart) > CASE WHEN DATEPART(dw, statusStart) = 5 THEN '15:30:00' ELSE '22:00:00' END THEN DATEADD(dd, 0, DATEDIFF(dd, 0, statusFinish)) + CAST('08:00:00' AS DATETIME) ELSE statusStart END AS statusStart,
statusFinish
FROM #test
WHERE
(DATEPART(dw, statusStart) in (2,3,4,5) and CONVERT(TIME, statusStart)>='08:00:00' AND CONVERT(TIME, statusStart) < CASE WHEN DATEPART(dw, statusStart) = 5 THEN '15:30:00' ELSE '22:00:00' END)
OR (DATEPART(dw, statusFinish) in (2,3,4,5) and CONVERT(TIME, statusFinish)>='08:00:00' AND CONVERT(TIME, statusFinish) < CASE WHEN DATEPART(dw, statusStart) = 5 THEN '15:30:00' ELSE '22:00:00' END)
Вы можете проверить это здесь: https://rextester.com/TGO17469
Возвращает эти результаты:
![enter image description here](https://i.stack.imgur.com/ZDf05.png)
ОБНОВЛЕНИЕ Фильтрация "комплектации" на основе комментария требует небольшой корректировки предложения WHERE:
WHERE
(
(DATEPART(dw, statusStart) in (2,3,4,5) and CONVERT(TIME, statusStart)>='08:00:00' AND CONVERT(TIME, statusStart) < CASE WHEN DATEPART(dw, statusStart) = 5 THEN '15:30:00' ELSE '22:00:00' END)
OR (DATEPART(dw, statusFinish) in (2,3,4,5) and CONVERT(TIME, statusFinish)>='08:00:00' AND CONVERT(TIME, statusFinish) < CASE WHEN DATEPART(dw, statusStart) = 5 THEN '15:30:00' ELSE '22:00:00' END)
)
AND itemStatus = 'Picking'
Тестируется здесь: https://rextester.com/HXJP15440