У меня есть следующий запрос:
select a.ID, a.Date_Reported AS [Date Sent to X], b.Date_Received AS [Date Returned from X],
(datediff(dd, a.date_reported, b.date_received)
+ CASE WHEN Datepart(dw, b.date_received) = 7 THEN 1 ELSE 0 END
- (Datediff(wk, a.date_reported, b.date_received) * 2 )
- CASE WHEN Datepart(dw, b.date_received) = 1 THEN 1 ELSE 0 END +
- CASE WHEN Datepart(dw, b.date_received) = 1 THEN 1 ELSE 0
END) AS [Time_Spent]
from Tx_Ex a
join Tx b on b.id = a.id
Просто запрос выполняет поиск разницы в рабочих днях между двумя датами (Дата получения - Дата отчета) в двух таблицах.
Я хочу настроить запрос так, чтобы мой вывод выглядел следующим образом:
Time Taken (days) | 0-3 | 4 | 5 | 6-8 | 9+ | less than 0 days
Count | 2 | 1 | 2 | 1 | 1 | 3
% | 20 | 10| 20| 10 | 10 | 30
Итак, я просто добавил фиктивные значения для count и%, чтобы лучше понять, чего я хочу.По сути, я хочу, чтобы вышеуказанный запрос был изменен, поэтому у меня есть вышеуказанные диапазоны, а также две другие строки с количеством и%.
Пример из приведенной выше таблицы, запрос скажет мне, что есть 2 случая, когда разница вдве даты попадают в диапазон 0-3 и, следовательно, 20% от общего числа.Кроме того, есть случаи (из-за ошибок), когда время может быть отрицательным (т. Е. Сообщаемая дата на самом деле позже, чем полученная дата), поэтому я добавил, что «диапазон меньше 0».
Пожалуйста, дайтея знаю, если что-то неясно.