select ipqc_id, ipqc_code, ipqc_name, ipqc_type, template_id, workorder_id, workorder_code, workorder_name, task_id, task_code, task_name, workstation_id, workstation_code, workstation_name, process_id, process_code, process_name, item_id, item_code, item_name, specification, unit_of_measure, quantity_check, quantity_unqualified, quantity_qualified, cr_rate, maj_rate, min_rate, cr_quantity, maj_quantity, min_quantity, check_result, inspect_date, inspector, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from qc_ipqc insert into qc_ipqc ipqc_code, ipqc_name, ipqc_type, template_id, workorder_id, workorder_code, workorder_name, task_id, task_code, task_name, workstation_id, workstation_code, workstation_name, process_id, process_code, process_name, item_id, item_code, item_name, specification, unit_of_measure, quantity_check, quantity_unqualified, quantity_qualified, cr_rate, maj_rate, min_rate, cr_quantity, maj_quantity, min_quantity, check_result, inspect_date, inspector, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, #{ipqcCode}, #{ipqcName}, #{ipqcType}, #{templateId}, #{workorderId}, #{workorderCode}, #{workorderName}, #{taskId}, #{taskCode}, #{taskName}, #{workstationId}, #{workstationCode}, #{workstationName}, #{processId}, #{processCode}, #{processName}, #{itemId}, #{itemCode}, #{itemName}, #{specification}, #{unitOfMeasure}, #{quantityCheck}, #{quantityUnqualified}, #{quantityQualified}, #{crRate}, #{majRate}, #{minRate}, #{crQuantity}, #{majQuantity}, #{minQuantity}, #{checkResult}, #{inspectDate}, #{inspector}, #{status}, #{remark}, #{attr1}, #{attr2}, #{attr3}, #{attr4}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, update qc_ipqc ipqc_code = #{ipqcCode}, ipqc_name = #{ipqcName}, ipqc_type = #{ipqcType}, template_id = #{templateId}, workorder_id = #{workorderId}, workorder_code = #{workorderCode}, workorder_name = #{workorderName}, task_id = #{taskId}, task_code = #{taskCode}, task_name = #{taskName}, workstation_id = #{workstationId}, workstation_code = #{workstationCode}, workstation_name = #{workstationName}, process_id = #{processId}, process_code = #{processCode}, process_name = #{processName}, item_id = #{itemId}, item_code = #{itemCode}, item_name = #{itemName}, specification = #{specification}, unit_of_measure = #{unitOfMeasure}, quantity_check = #{quantityCheck}, quantity_unqualified = #{quantityUnqualified}, quantity_qualified = #{quantityQualified}, cr_rate = #{crRate}, maj_rate = #{majRate}, min_rate = #{minRate}, cr_quantity = #{crQuantity}, maj_quantity = #{majQuantity}, min_quantity = #{minQuantity}, check_result = #{checkResult}, 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 ipqc_id = #{ipqcId} UPDATE qc_ipqc 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 'ipqc_id' FROM qc_defect_record qid WHERE qid.qc_id = #{ipqcId} and qid.qc_type = 'IPQC' GROUP BY qid.qc_id ) b ON a.`ipqc_id` = b.ipqc_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.ipqc_id = #{ipqcId} delete from qc_ipqc where ipqc_id = #{ipqcId} delete from qc_ipqc where ipqc_id in #{ipqcId}