首页 > 解决方案 > MySql Count Rework 和 SUM Rework by Phase

问题描述

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

我有以下 SQL 表:

关联

我需要计算以下内容:

1.查询:按阶段返工计数

例如(基于orderid 749,见链接)01阶段的订单已经是3次了。01阶段的第一次被计算为“生产”(Right First Time)。该阶段的任何其他重复都是“返工”(流程偏差/返工)​​。在此 orderid (749) 的情况下,返工计数器为 2。

2. 查询:按阶段返工的时间(以秒为单位)(过程偏差/返工) ​​ 在 orderid 749 的情况下,我已经在 Excel 中计算了按阶段返工的时间(以秒为单位)。我只需要这个也通过mysql实现。例如: 我在 Excel 中的计算

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

360 秒 = “正确的第一次”

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

工艺偏差/返工 = 12840 秒

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

感谢您的时间和您的支持。

BR,理查德

标签: mysql

解决方案


问题已经解决了:

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

推荐阅读