Итак, у меня есть запрос, который извлекает заявки в службу поддержки, и с помощью GROUP_CONCAT()
я извлекаю каждый статус заявки в одну строку, чтобы обработать PHP в виде массива.
Моя проблема в том, что у меня есть запросSUM()
чтобы получить время, потраченное на каждый тикет из его интервенций, но, например, если GROUP_CONCAT()
извлекает 12 статусов, а сумма тикета составляет 2400 секунд, конечный результат SUM()
равен 2400 x 12 = 28800.
Вот мой запрос:
SELECT t.subject as theme, SUM(fd.duree) as time, t.datec, t.date_close, t.category_code as category, GROUP_CONCAT(DISTINCT IFNULL(tl.status, 0),'_',tl.datec ORDER BY tl.datec) as status
FROM llx_ticketsup as t
JOIN llx_societe as s on s.rowid = t.fk_soc
JOIN llx_user as u on u.rowid = t.fk_user_assign
JOIN llx_element_element as ee on ee.fk_source = t.rowid
JOIN llx_fichinter as f on f.rowid = ee.fk_target
JOIN llx_fichinterdet as fd on fd.fk_fichinter = f.rowid
JOIN llx_ticketsup_logs as tl on tl.fk_track_id = t.track_id
WHERE t.fk_statut = 8
AND t.fk_soc = 165
AND (STR_TO_DATE(t.date_close, '%Y-%m-%d') BETWEEN '2018-06-25' AND '2018-06-25 23:59:59')
GROUP BY t.rowid
Результат:

Он должен иметь 2400 по времени, но умножаетсяпо его 12 статусам.
Если я тоже группирую по статусам, время хорошо, как вы можете видеть, но мне нужна только одна строка с экспансией билета в реальном времени и объединенными его статусами.

Мой вопрос: как можно избежать GROUP_CONCAT()
строк, чтобы не умножить мои SUM()
?
* РЕДАКТИРОВАТЬ: Я сделал этоработать путем деления SUM(fd.duree)/COUNT(DISTINCT tl.rowid)
.Я знаю, что это странное решение, но не знаю, как поступить иначе.Если у кого-нибудь есть какие-либо предложения, буду признателен.Спасибо!