Страница 1 из 1

SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 09:49
Norman
Как через запрос SQL
Вытащить все заявки "timeout" которыйх больше чем "escalation_update_time" ведь при ответе на заявку "escalation_update_time" приравнивается к "0"
т.е. найти через базу все заявки у которых время первого ответа было превышено.

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 13:10
alexus26

Код: Выделить всё

SELECT * FROM `ticket` WHERE `escalation_update_time`<`timeout`and `ticket_lock_id`<>'1'
Может так?

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 13:22
Norman
И тем не менее если мы ответим на завявку
escalation_response_time будет равно "0"
с чем сравнивать то?

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 13:26
alexus26
Если не трудно, поясните жизненную ситуацию, для чего Вам нужен этот запрос?

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 14:04
Norman
У нас учитывается время первого ответа на заявку.
т.е. в конце каждого месяца говорим сколько заявок у которых было превышено время первого ответа.

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 14:06
Norman
Сейчас это делается всё так сказать не идеально.
т.е. запрос всё сам в ручную считает.
И он не учитывает не рабочее время (которое должен передвигать)
Не выходные дни и праздники.
Пример:

Код: Выделить всё

SELECT count(ticket_history.id) AS Overdue_ticket_cf FROM ( select min(ticket_history.id) AS id from ticket_history left join ticket ON ticket.id=ticket_history.ticket_id AND (ticket.type_id =12 ) WHERE history_type_id=8 AND month(ticket.create_time) =month(CURDATE()- interval 1 month) AND year(ticket.create_time)=YEAR(curdate()) AND (time(ticket.create_time)<time('19:00') and time(ticket.create_time)>time('09:00') ) GROUP by ticket_id order by null) AS h1 join ticket_history USING(id) left join ticket ON ticket.id=ticket_history.ticket_id WHERE ticket_history.create_time > ticket.create_time + interval 1 hour AND month(ticket.create_time) =month(CURDATE()- interval 1 month) AND year(ticket.create_time)=YEAR(curdate()) AND (time(ticket.create_time)<time('19:00') and time(ticket.create_time)>time('09:00') ) ORDER by ticket_id

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 14:09
alexus
У нас есть аддон, который сохраняет занчения SLA в отдельную таблицу в момент сброса эскалации с учетом календаря. Дальше уже запрос - дело техники
Пример выдачи:

Код: Выделить всё

id 	ticket_id 	escalation_id 	till_escalation_time 	escalation_time 	create_time 	create_by
1 	75 	1 	-1860 	1392231078 	2014-02-12 14:22:09 	2
2 	75 	2 	1740 	1392234678 	2014-02-12 14:22:09 	2
3 	75 	2 	6960 	1392240129 	2014-02-12 14:26:42 	2
4 	75 	2 	7080 	1392240402 	2014-02-12 14:28:09 	2
5 	75 	0 	7080 	1392240402 	2014-02-12 14:28:09 	2
6 	75 	2 	7080 	1392240402 	2014-02-12 14:28:09 	2
7 	75 	3 	8580 	1392241878 	2014-02-12 14:28:09 	2
8 	18 	1 	-766920 	1391029134 	2014-02-21 06:34:38 	2
9 	18 	2 	-761520 	1391034534 	2014-02-21 06:34:38 	2
10 	18 	0 	-754320 	1391041734 	2014-02-21 07:37:53 	2
11 	18 	3 	-754320 	1391041734 	2014-02-21 07:37:53 	2

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 14:30
Norman
Слушайте думаю должно сработать, а что за аддон как его попробовать?

Re: SQL заявки у которых время первого ответа было превышено

Добавлено: 18 мар 2014, 14:48
alexus
Пишите в личку контакты. Аддон платный