我需要一些有关MYSQL中以下查询的帮助。
我有以下SQL表:
我需要计算以下内容:
1。查询:分阶段的返工计数
例如(基于订单号749,请参阅链接) 在阶段01中,该订单已经是3次。阶段01的第一次出现将被计算为“生产”(正确的第一次)。该阶段的任何其他重复都是“返工”(过程偏差/返工)。 如果是订单号(749),则返工计数器为2。
2。查询:分阶段进行返工的时间(秒)(过程偏差/返工) 在订购号为749的情况下,我已经在Excel中按阶段计算出返工的时间(以秒为单位)。我只需要通过mysql实现。 例如: My Calcualtion in Excel
在阶段“ 01.1”是该顺序的三倍。 订单的第一次出现(以秒为单位)是
360秒=“正确的第一次”
该阶段任何其他重复的总和是“返工”
流程偏差/返工= 12840秒
这是我必须通过MYSQL查询实现的功能。 请帮我。
感谢您的时间和支持。
BR, 理查德
答案 0 :(得分:0)
问题已经解决:
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