gpt4 book ai didi

mysql - 如何避免 GROUP_CONCAT() 行乘以我的 SUM()

转载 作者:行者123 更新时间:2023-11-29 17:24:35 25 4
gpt4 key购买 nike

因此,我有一个检索支持票证的查询,并使用 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

结果:

enter image description here

按时应该有 2400,但正在乘以他的 12 个状态。

如果我也按状态分组,时间就如您所见,但我只需要一行包含工单实时支出和连接的状态。

enter image description here

我的问题是,如何避免 GROUP_CONCAT() 行不与我的 SUM() 相乘?

*编辑:我通过除SUM(fd.duree)/COUNT(DISTINCT tl.rowid)使其工作。我知道这是一个奇怪的修复,但不知道该怎么做。如果有人有任何建议,将不胜感激。谢谢!

最佳答案

SELECT t.subject as theme, 
SUM(fd.duree) as time,
t.datec, t.date_close,
t.category_code as category,
(SELECT GROUP_CONCAT(DISTINCT COALESCE(l.status, 0),'_',l.datec ORDER BY l.datec)
FROM llx_ticketsup_logs AS l WHERE fk_track_id = t.track_id) as status
FROM llx_ticketsup as t
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
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

关于mysql - 如何避免 GROUP_CONCAT() 行乘以我的 SUM(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51036646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com