我需要有关MYSQL中以下查询的一些帮助。

我有以下SQL表:

LINK

我需要计算以下内容:

1.查询:分阶段返工数量

例如(基于订单ID 749,请参阅链接)
在阶段01中,该订单已经是3次。阶段01的第一次出现将被计算为“生产”(正确的第一次)。该阶段的任何其他重复都是“返工”(流程偏差/返工)​​。
如果是订单号(749),则返工计数器为2。

2.查询:分阶段返工的时间(秒)(过程偏差/返工)
在订购号为749的情况​​下,我已经在Excel中按阶段计算出返工的时间(以秒为单位)。我只需要通过mysql实现。
例如:
My Calcualtion in Excel

在阶段“ 01.1”是顺序的三倍。
订单的第一次出现(以秒为单位)是

360秒=“第一次正确”

该阶段任何其他重复的总和是“返工”

流程偏差/返工= 12840秒

这就是我必须通过MYSQL Query实现的功能。
请帮我。

感谢您的时间和支持。

BR
理查德

最佳答案

问题已经解决:

SELECT SH.newphase , SUM(CASE WHEN SH.id = T.minid THEN TIMESTAMPDIFF(SECOND, SH.created, IFNULL(SH5.created, NOW())) ELSE 0 END) AS jo , SUM(CASE WHEN SH.id <> T.minid THEN TIMESTAMPDIFF(SECOND, SH.created, IFNULL(SH5.created, NOW())) ELSE 0 END) AS nemjo FROM Sol_Afo_History SH LEFT JOIN (SELECT SH2.orderid, SH2.newphase, MIN(SH2.id) AS minid FROM Sol_Afo_History SH2 GROUP BY SH2.orderid, SH2.newphase) T ON T.orderid = SH.orderid AND T.newphase = SH.newphase LEFT JOIN (SELECT SH3.id, (SELECT MAX(SH4.id) FROM Sol_Afo_History SH4 WHERE SH3.orderid = SH4.orderid AND SH4.id < SH3.id) AS elozid FROM Sol_Afo_History SH3) SHKOV ON SHKOV.elozid = SH.id LEFT JOIN Sol_Afo_History SH5 ON SHKOV.id = SH5.id WHERE SH.orderid='749' GROUP BY SH.newphase

关于mysql - 按阶段进行MySql Count返工和SUM返工,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54794271/

10-16 00:37