SELECT CAST_NO, MATERIAL_NO, MATERIAL_NAME, SUM(ACT_THEORY_WEIGHT) ACT_THEORY_WEIGHT, GRADECODE, GRADENAME, BELONG_CODE, BELONG_NAME, BAL_YEAR_MONTH FROM (SELECT T.CAST_NO, T.MATERIAL_NO, T.MATERIAL_NAME, SUM(T.ACT_THEORY_WEIGHT) ACT_THEORY_WEIGHT, T.GRADECODE, T.GRADENAME, T.BELONG_CODE, T.BELONG_NAME, T.BAL_YEAR_MONTH FROM STL_LG_CASTING_SCRAP T WHERE 1 = 1 #BAL_YEAR_MONTH# #CAST_NO# GROUP BY T.CAST_NO, T.MATERIAL_NO, T.MATERIAL_NAME, T.GRADECODE, T.GRADENAME, T.BELONG_CODE, T.BELONG_NAME, T.BAL_YEAR_MONTH UNION ALL SELECT T.CAST_NO, T.MATERIAL_NO, T.MATERIAL_NAME, SUM(T.ACT_THEORY_WEIGHT) ACT_THEORY_WEIGHT, T.GRADECODE, T.GRADENAME, T.BELONG_CODE, T.BELONG_NAME, T.BAL_YEAR_MONTH FROM MAT_GP_M T, YDM_GP_BUTTRESS S WHERE T.MAT_NO = S.MAT_NO AND (T.QCM_STAUS = '22' OR T.QCM_STAUS = '00' AND T.JUDGE_RESULT_CODE = '40740704') #BAL_YEAR_MONTH# #CAST_NO# GROUP BY T.CAST_NO, T.MATERIAL_NO, T.MATERIAL_NAME, T.GRADECODE, T.GRADENAME, T.BELONG_CODE, T.BELONG_NAME, T.BAL_YEAR_MONTH) GROUP BY CAST_NO, MATERIAL_NO, MATERIAL_NAME, GRADECODE, GRADENAME, BELONG_CODE, BELONG_NAME, BAL_YEAR_MONTH SELECT * FROM STL_LG_CASTING_SCRAP_HISTORY T WHERE 1 = 1 #BAL_YEAR_MONTH# #CAST_NO# SELECT 'HF' || TO_CHAR(SYSDATE, 'YYYYMMDD') || LPAD(NVL(MAX(SUBSTR(T.BACK_WASTE_NO, 11,4)), 0) + 1, 4, 0) BACK_WASTE_NO FROM STL_LG_CASTING_SCRAP_HISTORY T WHERE TRUNC(T.CREATE_TIME) = TRUNC(SYSDATE) INSERT INTO STL_LG_CASTING_SCRAP_HISTORY( BACK_WASTE_NO, STOVE_NO, CAST_NO, MATERIAL_NO, MATERIAL_NAME, GRADECODE, GRADENAME, ACT_THEORY_WEIGHT, BELONG_CODE, BELONG_NAME, EF_PLINE_CODE, EF_PLINE_NAME, CREATE_NAME, CREATE_TIME, BAL_YEAR_MONTH) VALUES( '#BACK_WASTE_NO#', '#STOVE_NO#', '#CAST_NO#', '#MATERIAL_NO#', '#MATERIAL_NAME#', '#GRADECODE#', '#GRADENAME#', '#ACT_THEORY_WEIGHT#', '#BELONG_CODE#', '#BELONG_NAME#', '#EF_PLINE_CODE#', '#EF_PLINE_NAME#', '#CREATE_NAME#', TO_DATE('#CREATE_TIME#','YYYY-MM-DD HH24:MI:SS'), '#BAL_YEAR_MONTH#') DECLARE BEGIN UPDATE STL_LG_CASTING_SCRAP T SET T.IS_SCRAP = '1' WHERE T.CAST_NO = '#CAST_NO#'; FOR MYROW IN (SELECT T.MAT_NO FROM MAT_GP_M T WHERE (T.QCM_STAUS = '22' OR T.QCM_STAUS = '00' AND T.JUDGE_RESULT_CODE = '40740704') AND T.CAST_NO = '#CAST_NO#' ORDER BY T.MAT_NO DESC) LOOP DELETE FROM MAT_GP_M T WHERE T.MAT_NO = MYROW.MAT_NO; DELETE FROM YDM_GP_BUTTRESS S WHERE S.MAT_NO = MYROW.MAT_NO; END LOOP; END;