gpt4 book ai didi

mysql - SUM CASE 从连接表而不是主表添加

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

我有一个从客户那里检索的查询:

  • 他的工单所花费的时间总和(每张工单可以有 1 次或多次干预)
  • 平均解决时间
  • 每张票的类别

查询:

SELECT SUM(f.duree) as total_time, SUM(timestampdiff(second, t.datec, t.date_close))/COUNT(distinct t.rowid) as average_resolution, COUNT(distinct t.rowid) as tickets, 
SUM( CASE t.category_code WHEN 'WITHOUT_MAINTENANCE' THEN 1 ELSE 0 END) as sin_mantenimiento,
SUM( CASE t.category_code WHEN 'WITH_MAINTENANCE' THEN 1 ELSE 0 END) as con_mantenimiento,
SUM( CASE t.category_code WHEN 'WITH_BILLABLE_MAINTENANCE' THEN 1 ELSE 0 END) as con_mantenimiento_facturable,
SUM( CASE t.category_code WHEN 'NO_BILLABLE_COASER_WARRANTY' THEN 1 ELSE 0 END) as no_facturable_garantia_coaser,
SUM( CASE t.category_code WHEN 'OFERTADO' THEN 1 ELSE 0 END) as ofertado
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
WHERE t.fk_soc = 47 AND t.fk_statut = 8

哪里

  • llx_ticketsup 是主门票表
  • llx_fichinter 是存储工单干预的表
  • llx_element_element 是工单和干预之间的表格

我的问题是,如果一张票有超过 1 次干预,则根据类别类型的总和来了解有多少来自该类别以及有多少来自另一类别,它会汇总干预而不是票。例如,如果查询返回 2 个工单,并且总共有 6 次干预,则它将返回 6 个类别 WITHOUT_MAINTENANCE 的工单,而不是 2 个类别 WITHOUT_MAINTENANCE 的工单。

怎么了?谢谢。

最佳答案

没有什么“错误”,这是预期的行为,请尝试使用子查询来获取持续时间。类似的东西

SELECT (select sum(f.duree) from llx_fichinter as f on f.rowid = ee.fk_target) as total_time, SUM(timestampdiff(second, t.datec, t.date_close))/COUNT(distinct t.rowid) as average_resolution, COUNT(distinct t.rowid) as tickets, 
SUM( CASE t.category_code WHEN 'WITHOUT_MAINTENANCE' THEN 1 ELSE 0 END) as sin_mantenimiento,
SUM( CASE t.category_code WHEN 'WITH_MAINTENANCE' THEN 1 ELSE 0 END) as con_mantenimiento,
SUM( CASE t.category_code WHEN 'WITH_BILLABLE_MAINTENANCE' THEN 1 ELSE 0 END) as con_mantenimiento_facturable,
SUM( CASE t.category_code WHEN 'NO_BILLABLE_COASER_WARRANTY' THEN 1 ELSE 0 END) as no_facturable_garantia_coaser,
SUM( CASE t.category_code WHEN 'OFERTADO' THEN 1 ELSE 0 END) as ofertado
FROM llx_ticketsup as t
JOIN llx_element_element as ee on ee.fk_source = t.rowid

WHERE t.fk_soc = 47 AND t.fk_statut = 8

如果这不起作用,请将示例数据和预期结果以文本形式添加到问题中,以便我们可以使用它。

关于mysql - SUM CASE 从连接表而不是主表添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49046237/

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