Страница 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
Пишите в личку контакты. Аддон платный