mysql - 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,理查德
解决方案
问题已经解决了:
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 ddl 语句转换 row_number() 函数
- react-native - nsnumber 类型的 json 值“2”无法转换为 nsstring
- windows - 通知在 Windows 10 上不起作用 - Electron JS
- python-3.x - PyGame - 如何在循环中绘制图像
- node.js - ts中节点重复定义错误
- javascript - 使用 cytoscape.js 展开和折叠组时如何保持先前的位置
- mysql - 我应该在用户和用户状态列中创建复合索引吗?
- node.js - 具有聚合或邻近功能的猫鼬选择功能
- java - 包含main方法的类可以继承另一个类吗?
- oracle - 在 Oracle 的存储过程中动态运行查询