Запросить MySQL и сравнить записи?

Мне нужно, чтобы скрипт работал для нашей биллинговой системы (WHMCS), используя их пример кода, который показывает среднее время ответа на запросы в службу поддержки за каждый месяц. Что-то подобное уже существует, однако оно дает время на основе всех ответов, а не только первого. Поскольку мы откладываем много заявок или отмечаем их для других сотрудников, мы хотели бы просто видеть, сколько времени в среднем занимает первый ответ.

Вот изображение того, как таблица выглядит в базе данных. Псевдокод/логика в основном будет заключаться в том, чтобы найти все записи «Новый запрос в службу поддержки открыт», а затем найти первую запись после этого для «Новый ответ на запрос, сделанный ...» для того же идентификатора запроса, и найти разницу в в время между датами.

У меня нет большого опыта работы с PHP/MYSQL, поэтому мне может понадобиться помощь, чтобы заставить это работать. Спасибо!

введите здесь описание изображения


person Community    schedule 25.06.2011    source источник


Ответы (1)


Следующая инструкция SQL должна дать нужные вам результаты:

SELECT b1.tid AS Tid, MIN(DATEDIFF(b2.date,b1.date)) AS ResponseTime
FROM billing b1 inner join billing b2 
ON b1.tid = b2.tid
WHERE b1.action='New Support Ticket Opened'
AND b2.action LIKE 'New Ticket Response made by%'
GROUP BY Tid

Чтобы узнать, как подключиться к MySql и выполнять запросы из PHP, я направлю вас в W3Schools.

person Ryan Gross    schedule 25.06.2011
comment
Да, я могу делать необходимые базовые вещи, но есть такие функции, как DATEDIFF(), о существовании которых я даже не подозревал. Будет ли это искать только первый ответ на тикет или он будет делать каждый ответ? Это одна из проблем, с которыми я сталкиваюсь: я не знаю, как считать только разницу во времени между открытием заявки и первым ответом. - person ; 25.06.2011
comment
Я только что отредактировал его, чтобы выбрать только минимальное время отклика для каждого прилива. - person Ryan Gross; 25.06.2011