select oqc_id, oqc_code, oqc_name, template_id, source_doc_id,source_doc_type, source_doc_code, source_line_id, client_id, client_code, client_name, batch_code, item_id, item_code, item_name, specification, unit_of_measure, quantity_min_check, quantity_max_unqualified, quantity_out, quantity_check, quantity_unqualified, quantity_quanlified, cr_rate, maj_rate, min_rate, cr_quantity, maj_quantity, min_quantity, check_result, out_date, inspect_date, inspector, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from qc_oqc insert into qc_oqc oqc_code, oqc_name, template_id, source_doc_id, source_doc_type, source_doc_code, source_line_id, client_id, client_code, client_name, batch_code, item_id, item_code, item_name, specification, unit_of_measure, quantity_min_check, quantity_max_unqualified, quantity_out, quantity_check, quantity_unqualified, quantity_quanlified, cr_rate, maj_rate, min_rate, cr_quantity, maj_quantity, min_quantity, check_result, out_date, inspect_date, inspector, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, #{oqcCode}, #{oqcName}, #{templateId}, #{sourceDocId}, #{sourceDocType}, #{sourceDocCode}, #{sourceLineId}, #{clientId}, #{clientCode}, #{clientName}, #{batchCode}, #{itemId}, #{itemCode}, #{itemName}, #{specification}, #{unitOfMeasure}, #{quantityMinCheck}, #{quantityMaxUnqualified}, #{quantityOut}, #{quantityCheck}, #{quantityUnqualified}, #{quantityQuanlified}, #{crRate}, #{majRate}, #{minRate}, #{crQuantity}, #{majQuantity}, #{minQuantity}, #{checkResult}, #{outDate}, #{inspectDate}, #{inspector}, #{status}, #{remark}, #{attr1}, #{attr2}, #{attr3}, #{attr4}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, update qc_oqc oqc_code = #{oqcCode}, oqc_name = #{oqcName}, template_id = #{templateId}, source_doc_id = #{sourceDocId}, source_doc_type = #{sourceDocType}, source_doc_code = #{sourceDocCode}, source_line_id = #{sourceLineId}, client_id = #{clientId}, client_code = #{clientCode}, client_name = #{clientName}, batch_code = #{batchCode}, item_id = #{itemId}, item_code = #{itemCode}, item_name = #{itemName}, specification = #{specification}, unit_of_measure = #{unitOfMeasure}, quantity_min_check = #{quantityMinCheck}, quantity_max_unqualified = #{quantityMaxUnqualified}, quantity_out = #{quantityOut}, quantity_check = #{quantityCheck}, quantity_unqualified = #{quantityUnqualified}, quantity_quanlified = #{quantityQuanlified}, cr_rate = #{crRate}, maj_rate = #{majRate}, min_rate = #{minRate}, cr_quantity = #{crQuantity}, maj_quantity = #{majQuantity}, min_quantity = #{minQuantity}, check_result = #{checkResult}, out_date = #{outDate}, inspect_date = #{inspectDate}, inspector = #{inspector}, status = #{status}, remark = #{remark}, attr1 = #{attr1}, attr2 = #{attr2}, attr3 = #{attr3}, attr4 = #{attr4}, create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, where oqc_id = #{oqcId} UPDATE qc_oqc a INNER JOIN ( SELECT SUM(CASE WHEN defect_level = 'CR' THEN defect_quantity ELSE 0 END ) AS cr_quantity, SUM(CASE WHEN defect_level = 'MAJ' THEN defect_quantity ELSE 0 END) AS maj_quantity, SUM(CASE WHEN defect_level = 'MIN' THEN defect_quantity ELSE 0 END) AS min_quantity, qid.`qc_id` as 'oqc_id' FROM qc_defect_record qid WHERE qid.qc_id = #{oqcId} and qc_type = 'OQC' GROUP BY qid.qc_id ) b ON a.`oqc_id` = b.oqc_id SET a.cr_quantity=b.cr_quantity,a.maj_quantity=b.maj_quantity,a.min_quantity=b.min_quantity, a.`cr_rate`= ROUND(b.cr_quantity/a.`quantity_check`*100,2), a.`maj_rate`= ROUND(b.maj_quantity/a.`quantity_check`*100,2), a.`min_rate`= ROUND(b.min_quantity/a.`quantity_check`*100,2) WHERE a.oqc_id = #{oqcId} delete from qc_oqc where oqc_id = #{oqcId} delete from qc_oqc where oqc_id in #{oqcId}