konghe před 1 rokem
rodič
revize
185eb8f88b

+ 1 - 1
wwwroot/Web.config

@@ -11,7 +11,7 @@
 	</connectionStrings>
 	<appSettings>
 		<add key="ProductCheckServer" value="http://192.168.0.101"/>
-		<add key="成型" value="'01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','1' ,'2' ,'3'"/>
+		<add key="成型" value="'01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','1' ,'2' ,'3','99','099'"/>
 		<add key="打磨" value="'10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35'"/>
 		<add key="擦洗" value="'01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '28', '34', '35'"/>
 		<add key="半检" value="'01','02','03','04','05','06','07','08','09','10','19','20','25','26','27','28','29','30','12','13','14','15','16','17','18','23','31','32','33','34','35'"/>

+ 4 - 4
wwwroot/mes/rpt/rpt201/rpt.ashx

@@ -123,7 +123,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             sqlStr +=   "  AND GDL.HIGHPRESSUREFLAG =1 ";
                         }
                         else {
-                            sqlStr +=   "  AND GDL.GROUTINGLINECODE LIKE '%"+context.Request["linecodeMaster"] + "%' ";
+                            sqlStr +=   "  AND GDL.GROUTINGLINECODE LIKE '%"+(context.Request["linecodeMaster"]=="干补"?"00":context.Request["linecodeMaster"]) + "%' ";
                         }
                     }
 
@@ -182,7 +182,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             }
                             else
                             {
-                                sqlStr += " AND GDL.GROUTINGLINECODE LIKE '%" + context.Request["linesection"] + "%' ";
+                                sqlStr += " AND GDL.GROUTINGLINECODE LIKE '%" + (context.Request["linesection"]=="干补"?"00":context.Request["linesection"]) + "%' ";
                             }
                         }
 
@@ -195,7 +195,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             sqlStr +=   "  AND GDL.HIGHPRESSUREFLAG =1 ";
                         }
                         else {
-                            sqlStr +=   "  AND GDL.GROUTINGLINECODE LIKE '%"+context.Request["linecodeMaster"] + "%' ";
+                            sqlStr +=   "  AND GDL.GROUTINGLINECODE LIKE '%"+(context.Request["linecodeMaster"]=="干补"?"00":context.Request["linecodeMaster"]) + "%' ";
                         }
                     }
 
@@ -212,7 +212,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 //获取数据
                 //获取分页参数
                 int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
-                int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
+                int rows = HttpContext.Current.Request["rows"] is int ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
                 string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
                 string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
 

+ 11 - 1
wwwroot/mes/rpt/rpt201/rpt_index.html

@@ -28,7 +28,7 @@
                         <input class="easyui-datetimebox" id="dateendMaster" name="dateendMaster" data-options="required:true,prompt:'',tipPosition:'top'" style="width:180px; height:32px;">
                         车间:
                         <input class="easyui-combobox" id="linecodeMaster" name="linecodeMaster" data-options="required:false,valueField:'value',textField:'text',
-                               data:[{'text': '成A', 'value': 'A'}, {'text': '成B', 'value': 'B'}, {'text': '成C', 'value': 'C'}, {'text': '高压', 'value': '高压'}]" style=" width: 120px; height: 32px; ">
+                               data:[{'text': '成A', 'value': 'A'}, {'text': '成B', 'value': 'B'}, {'text': '成C', 'value': 'C'}, {'text': '高压', 'value': '高压'}, {'text': '干补', 'value': '干补'}]" style=" width: 120px; height: 32px; ">
 
                         成型段号:  <input class="easyui-combobox" id="linesection" name="linesection" data-options="required:false,valueField:'value',textField:'text',
                                data:[]" style=" width: 120px; height: 32px; " >
@@ -115,6 +115,16 @@
                         });
 
                     }
+                    if (val == "干补") {
+                        $('#linesection').combobox({   //初始化父级combobox控件
+                            valueField: 'id',  //显示数据的键的值
+                            textField: 'name', //显示数据的文本的值
+                            data: [
+                                { id: "00", name: "干补" },
+                            ]
+                        });
+
+                    }
                     if (val == "" || val == null) {
                         $('#linesection').combobox({   //初始化父级combobox控件
                             valueField: 'id',  //显示数据的键的值

+ 3 - 3
wwwroot/mes/rpt/rpt211/rpt.ashx

@@ -124,7 +124,7 @@ row_number() over (partition by 出窑条码 order by GOODSLEVELTYPEID DESC ) as
                         }
                         else
                         {
-                            sqlStr += " AND GDL.GROUTINGLINECODE LIKE '%" + context.Request["linesection"] + "%' ";
+                            sqlStr += " AND GDL.GROUTINGLINECODE LIKE '%" + (context.Request["linesection"]=="干补"?"00":context.Request["linesection"]) + "%' ";
                         }
                     }
 
@@ -135,7 +135,7 @@ row_number() over (partition by 出窑条码 order by GOODSLEVELTYPEID DESC ) as
                         sqlStr +=   " AND gl.HIGHPRESSUREFLAG =1 ";
                     }
                     else {
-                        sqlStr +=   " AND GDL.GROUTINGLINECODE LIKE '%"+context.Request["linecodeMaster"] + "%' ";
+                        sqlStr +=   " AND GDL.GROUTINGLINECODE LIKE '%"+(context.Request["linecodeMaster"]=="干补"?"00":context.Request["linecodeMaster"]) + "%' ";
                     }
                         }
                 }
@@ -213,7 +213,7 @@ row_number() over (partition by 出窑条码 order by GOODSLEVELTYPEID DESC ) as
                 sqlPara.Add(new CDAParameter("GROUTINGLINECODE", context.Request["GROUTINGLINECODE"], DataType.NVarChar));
                 //获取分页参数
                 int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 0;
-                int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 1000000;
+                int rows = HttpContext.Current.Request["rows"] is int ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 1000000;
                 string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
                 string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
 

+ 10 - 1
wwwroot/mes/rpt/rpt211/rpt_index.html

@@ -28,7 +28,7 @@
                         <input class="easyui-datetimebox" id="dateendMaster" name="dateendMaster" data-options="required:true,prompt:'',tipPosition:'top'" style="width:180px; height:32px;">
                         车间:
                         <input class="easyui-combobox" id="linecodeMaster" name="linecodeMaster" data-options="required:false,valueField:'value',textField:'text',
-                               data:[{'text': '成A', 'value': 'A'}, {'text': '成B', 'value': 'B'}, {'text': '成C', 'value': 'C'}, {'text': '高压', 'value': '高压'}]" style=" width: 120px; height: 32px; ">
+                               data:[{'text': '成A', 'value': 'A'}, {'text': '成B', 'value': 'B'}, {'text': '成C', 'value': 'C'}, {'text': '高压', 'value': '高压'}, {'text': '干补', 'value': '干补'}]" style=" width: 120px; height: 32px; ">
 
                         成型段号:  <input class="easyui-combobox" id="linesection" name="linesection" data-options="required:false,valueField:'value',textField:'text',
                                data:[]" style=" width: 120px; height: 32px; " onchange="choose(this.value)">
@@ -102,6 +102,15 @@
                             ]
                         });
                     }
+                    if (val == "干补") {
+                        $('#linesection').combobox({   //初始化父级combobox控件
+                            valueField: 'id',  //显示数据的键的值
+                            textField: 'name', //显示数据的文本的值
+                            data: [
+                                { id: "00", name: "干补" },
+                            ]
+                        });
+                    }
                 }
             });
         });

+ 235 - 235
wwwroot/mes/rpt/rpt304/rpt.ashx

@@ -391,153 +391,153 @@ SELECT
 								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(检验数.残品) ELSE NULL END 残品,
 								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(检验数.残品重量) ELSE NULL END 残品重量,
 								CASE WHEN 检验数.GOODSCODE <> '总计' THEN DECODE( NVL( 检验数.合格量, 0 ), 0, '0%', TO_CHAR( ( NVL( 检验数.合格量, 0 ) / DECODE( NVL( 检验数.检验量, 1 ), 0, 1, NVL( 检验数.检验量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) ELSE NULL END AS 合格率,
-								to_char(nvl(s.成型半检缺陷_坯脏,0)) AS 成型半检缺陷__坯脏,
-								to_char(nvl(s.成型半检缺陷_棕眼,0)) AS 成型半检缺陷__棕眼,
-								to_char(nvl(s.成型半检缺陷_裂底,0)) AS 成型半检缺陷__裂底,
-								to_char(nvl(s.成型半检缺陷_裂圈,0)) AS 成型半检缺陷__裂圈,
-								to_char(nvl(s.成型半检缺陷_裂鼻子,0)) AS 成型半检缺陷__裂鼻子,
-								to_char(nvl(s.成型半检缺陷_裂水道,0)) AS 成型半检缺陷__裂水道,
-								to_char(nvl(s.成型半检缺陷_裂管,0)) AS 成型半检缺陷__裂管,
-								to_char(nvl(s.成型半检缺陷_沾接裂,0)) AS 成型半检缺陷__沾接裂,
-								to_char(nvl(s.成型半检缺陷_裂眼,0)) AS 成型半检缺陷__裂眼,
-								to_char(nvl(s.成型半检缺陷_糙活,0)) AS 成型半检缺陷__糙活,
-								to_char(nvl(s.成型半检缺陷_变形,0)) AS 成型半检缺陷__变形,
-								to_char(nvl(s.成型半检缺陷_渣,0)) AS 成型半检缺陷__渣,
-								to_char(nvl(s.成型半检缺陷_管道渣,0)) AS 成型半检缺陷__管道渣,
-								to_char(nvl(s.成型半检缺陷_孔眼不良,0)) AS 成型半检缺陷__孔眼不良,
-								to_char(nvl(s.成型半检缺陷_堵眼,0)) AS 成型半检缺陷__堵眼,
-								to_char(nvl(s.成型半检缺陷_眼歪,0)) AS 成型半检缺陷__眼歪,
-								to_char(nvl(s.成型半检缺陷_丢气孔,0)) AS 成型半检缺陷__丢气孔,
-								to_char(nvl(s.成型半检缺陷_丢眼,0)) AS 成型半检缺陷__丢眼,
-								to_char(nvl(s.成型半检缺陷_漏气,0)) AS 成型半检缺陷__漏气,
-								to_char(nvl(s.成型半检缺陷_空泡,0)) AS 成型半检缺陷__空泡,
-								to_char(nvl(s.成型半检缺陷_水封不良,0)) AS 成型半检缺陷__水封不良,
-								to_char(nvl(s.成型半检缺陷_漏水,0)) AS 成型半检缺陷__漏水,
-								to_char(nvl(s.成型半检缺陷_卡球,0)) AS 成型半检缺陷__卡球,
-								to_char(nvl(s.成型半检缺陷_冲刷不好,0)) AS 成型半检缺陷__冲刷不好,
-								to_char(nvl(s.成型半检缺陷_泥埂,0)) AS 成型半检缺陷__泥埂,
-								to_char(nvl(s.成型半检缺陷_断浆迹,0)) AS 成型半检缺陷__断浆迹,
-								to_char(nvl(s.成型半检缺陷_模迹,0)) AS 成型半检缺陷__模迹,
-								to_char(nvl(s.成型半检缺陷_重皮,0)) AS 成型半检缺陷__重皮,
-								to_char(nvl(s.成型半检缺陷_气泡,0)) AS 成型半检缺陷__气泡,
-								to_char(nvl(s.成型半检缺陷_眼扁,0)) AS 成型半检缺陷__眼扁,
-								to_char(nvl(s.成型半检缺陷_水绺,0)) AS 成型半检缺陷__水绺,
-								to_char(nvl(s.成型半检缺陷_裂,0)) AS 成型半检缺陷__裂,
-								to_char(nvl(s.成型半检缺陷_活糙 ,0)) AS 成型半检缺陷__活糙,
-								to_char(nvl(s.成型半检缺陷_贴码不良,0)) AS 成型半检缺陷__贴码不良,
-								to_char(nvl(s.成型半检缺陷_干补不良,0)) AS 成型半检缺陷__干补不良,
-								to_char(nvl(s.成型半检缺陷_内漏不合格,0)) AS 成型半检缺陷__内漏不合格,
-								to_char(nvl(s.成型半检缺陷_外漏不合格,0)) AS 成型半检缺陷__外漏不合格,
-								to_char(nvl(s.成型半检缺陷_试水不合格,0)) AS 成型半检缺陷__试水不合格,
-								to_char(nvl(s.成型半检缺陷_梭式窑其他蹦脏,0)) AS 成型半检缺陷__梭式窑蹦脏,
+								to_char(nvl(detailmx.成型半检缺陷_坯脏,0)) AS 成型半检缺陷__坯脏,
+								to_char(nvl(detailmx.成型半检缺陷_棕眼,0)) AS 成型半检缺陷__棕眼,
+								to_char(nvl(detailmx.成型半检缺陷_裂底,0)) AS 成型半检缺陷__裂底,
+								to_char(nvl(detailmx.成型半检缺陷_裂圈,0)) AS 成型半检缺陷__裂圈,
+								to_char(nvl(detailmx.成型半检缺陷_裂鼻子,0)) AS 成型半检缺陷__裂鼻子,
+								to_char(nvl(detailmx.成型半检缺陷_裂水道,0)) AS 成型半检缺陷__裂水道,
+								to_char(nvl(detailmx.成型半检缺陷_裂管,0)) AS 成型半检缺陷__裂管,
+								to_char(nvl(detailmx.成型半检缺陷_沾接裂,0)) AS 成型半检缺陷__沾接裂,
+								to_char(nvl(detailmx.成型半检缺陷_裂眼,0)) AS 成型半检缺陷__裂眼,
+								to_char(nvl(detailmx.成型半检缺陷_糙活,0)) AS 成型半检缺陷__糙活,
+								to_char(nvl(detailmx.成型半检缺陷_变形,0)) AS 成型半检缺陷__变形,
+								to_char(nvl(detailmx.成型半检缺陷_渣,0)) AS 成型半检缺陷__渣,
+								to_char(nvl(detailmx.成型半检缺陷_管道渣,0)) AS 成型半检缺陷__管道渣,
+								to_char(nvl(detailmx.成型半检缺陷_孔眼不良,0)) AS 成型半检缺陷__孔眼不良,
+								to_char(nvl(detailmx.成型半检缺陷_堵眼,0)) AS 成型半检缺陷__堵眼,
+								to_char(nvl(detailmx.成型半检缺陷_眼歪,0)) AS 成型半检缺陷__眼歪,
+								to_char(nvl(detailmx.成型半检缺陷_丢气孔,0)) AS 成型半检缺陷__丢气孔,
+								to_char(nvl(detailmx.成型半检缺陷_丢眼,0)) AS 成型半检缺陷__丢眼,
+								to_char(nvl(detailmx.成型半检缺陷_漏气,0)) AS 成型半检缺陷__漏气,
+								to_char(nvl(detailmx.成型半检缺陷_空泡,0)) AS 成型半检缺陷__空泡,
+								to_char(nvl(detailmx.成型半检缺陷_水封不良,0)) AS 成型半检缺陷__水封不良,
+								to_char(nvl(detailmx.成型半检缺陷_漏水,0)) AS 成型半检缺陷__漏水,
+								to_char(nvl(detailmx.成型半检缺陷_卡球,0)) AS 成型半检缺陷__卡球,
+								to_char(nvl(detailmx.成型半检缺陷_冲刷不好,0)) AS 成型半检缺陷__冲刷不好,
+								to_char(nvl(detailmx.成型半检缺陷_泥埂,0)) AS 成型半检缺陷__泥埂,
+								to_char(nvl(detailmx.成型半检缺陷_断浆迹,0)) AS 成型半检缺陷__断浆迹,
+								to_char(nvl(detailmx.成型半检缺陷_模迹,0)) AS 成型半检缺陷__模迹,
+								to_char(nvl(detailmx.成型半检缺陷_重皮,0)) AS 成型半检缺陷__重皮,
+								to_char(nvl(detailmx.成型半检缺陷_气泡,0)) AS 成型半检缺陷__气泡,
+								to_char(nvl(detailmx.成型半检缺陷_眼扁,0)) AS 成型半检缺陷__眼扁,
+								to_char(nvl(detailmx.成型半检缺陷_水绺,0)) AS 成型半检缺陷__水绺,
+								to_char(nvl(detailmx.成型半检缺陷_裂,0)) AS 成型半检缺陷__裂,
+								to_char(nvl(detailmx.成型半检缺陷_活糙 ,0)) AS 成型半检缺陷__活糙,
+								to_char(nvl(detailmx.成型半检缺陷_贴码不良,0)) AS 成型半检缺陷__贴码不良,
+								to_char(nvl(detailmx.成型半检缺陷_干补不良,0)) AS 成型半检缺陷__干补不良,
+								to_char(nvl(detailmx.成型半检缺陷_内漏不合格,0)) AS 成型半检缺陷__内漏不合格,
+								to_char(nvl(detailmx.成型半检缺陷_外漏不合格,0)) AS 成型半检缺陷__外漏不合格,
+								to_char(nvl(detailmx.成型半检缺陷_试水不合格,0)) AS 成型半检缺陷__试水不合格,
+								to_char(nvl(detailmx.成型半检缺陷_梭式窑其他蹦脏,0)) AS 成型半检缺陷__梭式窑蹦脏,
 								nvl(f.成型半检缺陷__缺陷汇总,0) AS 成型半检缺陷__缺陷汇总,
 								DECODE( NVL( f.成型半检缺陷__缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.成型半检缺陷__缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 成型半检缺陷__缺陷率,
-								to_char(nvl(s.精修缺陷_打磨缺陷_糙活,0)) AS 精修缺陷_打磨缺陷_糙活,
-								to_char(nvl(s.精修缺陷_打磨缺陷_变形,0)) AS 精修缺陷_打磨缺陷_变形,
-								to_char(nvl(s.精修缺陷_打磨缺陷_渣,0)) AS 精修缺陷_打磨缺陷_渣,
-								to_char(nvl(s.精修缺陷_打磨缺陷_管道渣,0)) AS 精修缺陷_打磨缺陷_管道渣,
-								to_char(nvl(s.精修缺陷_打磨缺陷_孔眼不良,0)) AS 精修缺陷_打磨缺陷_孔眼不良,
-								to_char(nvl(s.精修缺陷_打磨缺陷_睹眼,0)) AS 精修缺陷_打磨缺陷_睹眼,
-								to_char(nvl(s.精修缺陷_打磨缺陷_眼歪,0)) AS 精修缺陷_打磨缺陷_眼歪,
-								to_char(nvl(s.精修缺陷_打磨缺陷_丢气孔,0)) AS 精修缺陷_打磨缺陷_丢气孔,
-								to_char(nvl(s.精修缺陷_打磨缺陷_丢眼,0)) AS 精修缺陷_打磨缺陷_丢眼,
-								to_char(nvl(s.精修缺陷_打磨缺陷_水封不良,0)) AS 精修缺陷_打磨缺陷_水封不良,
-								to_char(nvl(s.精修缺陷_打磨缺陷_卡球,0)) AS 精修缺陷_打磨缺陷_卡球,
-								to_char(nvl(s.精修缺陷_打磨缺陷_活糙,0)) AS 精修缺陷_打磨缺陷_活糙,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_糙活,0)) AS 精修缺陷_打磨缺陷_糙活,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_变形,0)) AS 精修缺陷_打磨缺陷_变形,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_渣,0)) AS 精修缺陷_打磨缺陷_渣,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_管道渣,0)) AS 精修缺陷_打磨缺陷_管道渣,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_孔眼不良,0)) AS 精修缺陷_打磨缺陷_孔眼不良,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_睹眼,0)) AS 精修缺陷_打磨缺陷_睹眼,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_眼歪,0)) AS 精修缺陷_打磨缺陷_眼歪,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_丢气孔,0)) AS 精修缺陷_打磨缺陷_丢气孔,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_丢眼,0)) AS 精修缺陷_打磨缺陷_丢眼,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_水封不良,0)) AS 精修缺陷_打磨缺陷_水封不良,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_卡球,0)) AS 精修缺陷_打磨缺陷_卡球,
+								to_char(nvl(detailmx.精修缺陷_打磨缺陷_活糙,0)) AS 精修缺陷_打磨缺陷_活糙,
 								nvl(f.精修缺陷_打磨缺陷_缺陷汇总,0) AS 精修缺陷_打磨缺陷_缺陷汇总,
 								DECODE( NVL( f.精修缺陷_打磨缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.精修缺陷_打磨缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 精修缺陷_打磨缺陷_缺陷率,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_坯脏,0)) AS 精修缺陷_刷洗缺陷_坯脏,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_棕眼,0)) AS 精修缺陷_刷洗缺陷_棕眼,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_裂底,0)) AS 精修缺陷_刷洗缺陷_裂底,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_裂圈,0)) AS 精修缺陷_刷洗缺陷_裂圈,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_裂鼻子,0)) AS 精修缺陷_刷洗缺陷_裂鼻子,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_裂水道,0)) AS 精修缺陷_刷洗缺陷_裂水道,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_裂管,0)) AS 精修缺陷_刷洗缺陷_裂管,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_沾接裂,0)) AS 精修缺陷_刷洗缺陷_沾接裂,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_裂眼,0)) AS 精修缺陷_刷洗缺陷_裂眼,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_糙活,0)) AS 精修缺陷_刷洗缺陷_糙活,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_断浆迹,0)) AS 精修缺陷_刷洗缺陷_断浆迹,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_裂,0)) AS 精修缺陷_刷洗缺陷_裂,
-								to_char(nvl(s.精修缺陷_刷洗缺陷_活糙,0)) AS 精修缺陷_刷洗缺陷_活糙,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_坯脏,0)) AS 精修缺陷_刷洗缺陷_坯脏,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_棕眼,0)) AS 精修缺陷_刷洗缺陷_棕眼,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_裂底,0)) AS 精修缺陷_刷洗缺陷_裂底,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_裂圈,0)) AS 精修缺陷_刷洗缺陷_裂圈,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_裂鼻子,0)) AS 精修缺陷_刷洗缺陷_裂鼻子,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_裂水道,0)) AS 精修缺陷_刷洗缺陷_裂水道,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_裂管,0)) AS 精修缺陷_刷洗缺陷_裂管,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_沾接裂,0)) AS 精修缺陷_刷洗缺陷_沾接裂,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_裂眼,0)) AS 精修缺陷_刷洗缺陷_裂眼,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_糙活,0)) AS 精修缺陷_刷洗缺陷_糙活,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_断浆迹,0)) AS 精修缺陷_刷洗缺陷_断浆迹,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_裂,0)) AS 精修缺陷_刷洗缺陷_裂,
+								to_char(nvl(detailmx.精修缺陷_刷洗缺陷_活糙,0)) AS 精修缺陷_刷洗缺陷_活糙,
 																
 								nvl(f.精修缺陷_刷洗缺陷_缺陷汇总,0) AS 精修缺陷_刷洗缺陷_缺陷汇总,
 								DECODE( NVL( f.精修缺陷_刷洗缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.精修缺陷_刷洗缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL(打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 精修缺陷_刷洗缺陷_缺陷率,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_滚釉,0)) AS 施釉擦坯缺陷_施釉缺陷_滚釉,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_釉薄,0)) AS 施釉擦坯缺陷_施釉缺陷_釉薄,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_釉不匀,0)) AS 施釉擦坯缺陷_施釉缺陷_釉不匀,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_釉磕,0)) AS 施釉擦坯缺陷_施釉缺陷_釉磕,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_釉脏,0)) AS 施釉擦坯缺陷_施釉缺陷_釉脏,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_釉沾,0)) AS 施釉擦坯缺陷_施釉缺陷_釉沾,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_釉绺,0)) AS 施釉擦坯缺陷_施釉缺陷_釉绺,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_针孔,0)) AS 施釉擦坯缺陷_施釉缺陷_针孔,
-								to_char(nvl(s.施釉擦坯缺陷_施釉缺陷_色脏,0)) AS 施釉擦坯缺陷_施釉缺陷_色脏,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_滚釉,0)) AS 施釉擦坯缺陷_施釉缺陷_滚釉,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_釉薄,0)) AS 施釉擦坯缺陷_施釉缺陷_釉薄,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_釉不匀,0)) AS 施釉擦坯缺陷_施釉缺陷_釉不匀,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_釉磕,0)) AS 施釉擦坯缺陷_施釉缺陷_釉磕,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_釉脏,0)) AS 施釉擦坯缺陷_施釉缺陷_釉脏,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_釉沾,0)) AS 施釉擦坯缺陷_施釉缺陷_釉沾,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_釉绺,0)) AS 施釉擦坯缺陷_施釉缺陷_釉绺,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_针孔,0)) AS 施釉擦坯缺陷_施釉缺陷_针孔,
+								to_char(nvl(detailmx.施釉擦坯缺陷_施釉缺陷_色脏,0)) AS 施釉擦坯缺陷_施釉缺陷_色脏,
 
 								nvl(f.施釉擦坯缺陷_施釉缺陷_缺陷汇总,0) AS 施釉擦坯缺陷_施釉缺陷_缺陷汇总,
 								DECODE( NVL( f.施釉擦坯缺陷_施釉缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.施釉擦坯缺陷_施釉缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 施釉擦坯缺陷_施釉缺陷_缺陷率,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_灌釉不良,0)) AS 施釉擦坯缺陷_擦坯缺陷_灌釉不良,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_擦脏,0)) AS 施釉擦坯缺陷_擦坯缺陷_擦脏,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_崩标,0)) AS 施釉擦坯缺陷_擦坯缺陷_崩标,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_倒标,0)) AS 施釉擦坯缺陷_擦坯缺陷_倒标,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_标污,0)) AS 施釉擦坯缺陷_擦坯缺陷_标污,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_错标,0)) AS 施釉擦坯缺陷_擦坯缺陷_错标,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_丢标,0)) AS 施釉擦坯缺陷_擦坯缺陷_丢标,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_标错位,0)) AS 施釉擦坯缺陷_擦坯缺陷_标错位,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_未灌釉,0)) AS 施釉擦坯缺陷_擦坯缺陷_未灌釉,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_灌磕,0)) AS 施釉擦坯缺陷_擦坯缺陷_灌磕,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_坯磕,0)) AS 施釉擦坯缺陷_擦坯缺陷_坯磕,
-							to_char(nvl(s.施釉擦坯缺陷_擦坯缺陷_碱石,0)) AS 施釉擦坯缺陷_擦坯缺陷_碱石,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_灌釉不良,0)) AS 施釉擦坯缺陷_擦坯缺陷_灌釉不良,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_擦脏,0)) AS 施釉擦坯缺陷_擦坯缺陷_擦脏,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_崩标,0)) AS 施釉擦坯缺陷_擦坯缺陷_崩标,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_倒标,0)) AS 施釉擦坯缺陷_擦坯缺陷_倒标,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_标污,0)) AS 施釉擦坯缺陷_擦坯缺陷_标污,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_错标,0)) AS 施釉擦坯缺陷_擦坯缺陷_错标,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_丢标,0)) AS 施釉擦坯缺陷_擦坯缺陷_丢标,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_标错位,0)) AS 施釉擦坯缺陷_擦坯缺陷_标错位,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_未灌釉,0)) AS 施釉擦坯缺陷_擦坯缺陷_未灌釉,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_灌磕,0)) AS 施釉擦坯缺陷_擦坯缺陷_灌磕,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_坯磕,0)) AS 施釉擦坯缺陷_擦坯缺陷_坯磕,
+							to_char(nvl(detailmx.施釉擦坯缺陷_擦坯缺陷_碱石,0)) AS 施釉擦坯缺陷_擦坯缺陷_碱石,
 
 								nvl(f.施釉擦坯缺陷_擦坯缺陷_缺陷汇总,0) AS 施釉擦坯缺陷_擦坯缺陷_缺陷汇总,
 								DECODE( NVL( f.施釉擦坯缺陷_擦坯缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.施釉擦坯缺陷_擦坯缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 施釉擦坯缺陷_擦坯缺陷_缺陷率,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_落脏,0)) AS 回烧缺陷_装窑缺陷_落脏,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_装沾,0)) AS 回烧缺陷_装窑缺陷_装沾,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_装磕,0)) AS 回烧缺陷_装窑缺陷_装磕,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_装裂,0)) AS 回烧缺陷_装窑缺陷_装裂,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_装走,0)) AS 回烧缺陷_装窑缺陷_装走,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_装脏,0)) AS 回烧缺陷_装窑缺陷_装脏,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_缺釉,0)) AS 回烧缺陷_装窑缺陷_缺釉,
-								to_char(nvl(s.回烧缺陷_装窑缺陷_板折,0)) AS 回烧缺陷_装窑缺陷_板折,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_落脏,0)) AS 回烧缺陷_装窑缺陷_落脏,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_装沾,0)) AS 回烧缺陷_装窑缺陷_装沾,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_装磕,0)) AS 回烧缺陷_装窑缺陷_装磕,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_装裂,0)) AS 回烧缺陷_装窑缺陷_装裂,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_装走,0)) AS 回烧缺陷_装窑缺陷_装走,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_装脏,0)) AS 回烧缺陷_装窑缺陷_装脏,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_缺釉,0)) AS 回烧缺陷_装窑缺陷_缺釉,
+								to_char(nvl(detailmx.回烧缺陷_装窑缺陷_板折,0)) AS 回烧缺陷_装窑缺陷_板折,
 
 								nvl(f.回烧缺陷_装窑缺陷_缺陷汇总,0) AS 回烧缺陷_装窑缺陷_缺陷汇总,
 								DECODE( NVL( f.回烧缺陷_装窑缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧缺陷_装窑缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧缺陷_装窑缺陷_缺陷率,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_水滴,0)) AS 回烧缺陷_烧窑缺陷_水滴,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_窑脏,0)) AS 回烧缺陷_烧窑缺陷_窑脏,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_烧裂,0)) AS 回烧缺陷_烧窑缺陷_烧裂,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_针孔,0)) AS 回烧缺陷_烧窑缺陷_针孔,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_风惊,0)) AS 回烧缺陷_烧窑缺陷_风惊,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_烧生,0)) AS 回烧缺陷_烧窑缺陷_烧生,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_串烟,0)) AS 回烧缺陷_烧窑缺陷_串烟,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_烧坑,0)) AS 回烧缺陷_烧窑缺陷_烧坑,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_桔釉,0)) AS 回烧缺陷_烧窑缺陷_桔釉,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_过火,0)) AS 回烧缺陷_烧窑缺陷_过火,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_火燎,0)) AS 回烧缺陷_烧窑缺陷_火燎,
-								to_char(nvl(s.回烧缺陷_烧窑缺陷_烧走,0)) AS 回烧缺陷_烧窑缺陷_烧走,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_水滴,0)) AS 回烧缺陷_烧窑缺陷_水滴,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_窑脏,0)) AS 回烧缺陷_烧窑缺陷_窑脏,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_烧裂,0)) AS 回烧缺陷_烧窑缺陷_烧裂,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_针孔,0)) AS 回烧缺陷_烧窑缺陷_针孔,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_风惊,0)) AS 回烧缺陷_烧窑缺陷_风惊,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_烧生,0)) AS 回烧缺陷_烧窑缺陷_烧生,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_串烟,0)) AS 回烧缺陷_烧窑缺陷_串烟,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_烧坑,0)) AS 回烧缺陷_烧窑缺陷_烧坑,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_桔釉,0)) AS 回烧缺陷_烧窑缺陷_桔釉,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_过火,0)) AS 回烧缺陷_烧窑缺陷_过火,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_火燎,0)) AS 回烧缺陷_烧窑缺陷_火燎,
+								to_char(nvl(detailmx.回烧缺陷_烧窑缺陷_烧走,0)) AS 回烧缺陷_烧窑缺陷_烧走,
 								nvl(f.回烧缺陷_烧窑缺陷_缺陷汇总,0)AS 回烧缺陷_烧窑缺陷_缺陷汇总,
 								DECODE( NVL( f.回烧缺陷_烧窑缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧缺陷_烧窑缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧缺陷_烧窑缺陷_缺陷率,
-								TO_CHAR(nvl(s.回烧缺陷_出窑缺陷_磕碰,0))AS 回烧缺陷_出窑缺陷_磕碰,
-								TO_CHAR(nvl(s.回烧缺陷_出窑缺陷_划釉,0))AS 回烧缺陷_出窑缺陷_划釉,
+								TO_CHAR(nvl(detailmx.回烧缺陷_出窑缺陷_磕碰,0))AS 回烧缺陷_出窑缺陷_磕碰,
+								TO_CHAR(nvl(detailmx.回烧缺陷_出窑缺陷_划釉,0))AS 回烧缺陷_出窑缺陷_划釉,
 								nvl(f.回烧缺陷_出窑缺陷_缺陷汇总,0) AS 回烧缺陷_出窑缺陷_缺陷汇总,
 								DECODE( NVL( f.回烧缺陷_出窑缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧缺陷_出窑缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧缺陷_出窑缺陷_缺陷率,
 
-								TO_CHAR(nvl(s.回烧修补缺陷_修补不良,0)) AS  回烧缺陷_回烧修补缺陷_修补不良,
-								TO_CHAR(nvl(s.回烧修补缺陷_漏修,0)) AS 回烧缺陷_回烧修补缺陷_漏修,
-								TO_CHAR(nvl(s.回烧修补缺陷_漏检,0)) AS  回烧缺陷_回烧修补缺陷_漏检,
-								TO_CHAR(nvl(s.回烧修补缺陷_白点,0)) AS 回烧缺陷_回烧修补缺陷_白点,
+								TO_CHAR(nvl(detailmx.回烧修补缺陷_修补不良,0)) AS  回烧缺陷_回烧修补缺陷_修补不良,
+								TO_CHAR(nvl(detailmx.回烧修补缺陷_漏修,0)) AS 回烧缺陷_回烧修补缺陷_漏修,
+								TO_CHAR(nvl(detailmx.回烧修补缺陷_漏检,0)) AS  回烧缺陷_回烧修补缺陷_漏检,
+								TO_CHAR(nvl(detailmx.回烧修补缺陷_白点,0)) AS 回烧缺陷_回烧修补缺陷_白点,
 								nvl(f.回烧修补_缺陷汇总,0) AS 回烧缺陷_回烧修补缺陷_缺陷汇总,
 								DECODE( NVL( f.回烧修补_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧修补_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧缺陷_回烧修补缺陷_缺陷率,
 
-								TO_CHAR(nvl(s.原料缺陷_泥料缺陷_铜脏,0)) AS 原料缺陷_泥料缺陷_铜脏,
-								TO_CHAR(nvl(s.原料缺陷_泥料缺陷_料脏,0)) AS 原料缺陷_泥料缺陷_料脏,
-								TO_CHAR(nvl(s.原料缺陷_釉料缺陷_铜脏,0)) AS 原料缺陷_釉料缺陷_铜脏, 
-								TO_CHAR(nvl(s.原料缺陷_釉料缺陷_铁脏,0)) AS 原料缺陷_釉料缺陷_铁脏,
+								TO_CHAR(nvl(detailmx.原料缺陷_泥料缺陷_铜脏,0)) AS 原料缺陷_泥料缺陷_铜脏,
+								TO_CHAR(nvl(detailmx.原料缺陷_泥料缺陷_料脏,0)) AS 原料缺陷_泥料缺陷_料脏,
+								TO_CHAR(nvl(detailmx.原料缺陷_釉料缺陷_铜脏,0)) AS 原料缺陷_釉料缺陷_铜脏, 
+								TO_CHAR(nvl(detailmx.原料缺陷_釉料缺陷_铁脏,0)) AS 原料缺陷_釉料缺陷_铁脏,
 								nvl(f.原料缺陷_缺陷汇总,0) AS 原料缺陷__缺陷汇总,
 								DECODE( NVL( f.原料缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.原料缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 原料缺陷__缺陷率,
-								to_char(nvl(s.其他_隧道窑其他试验不良,0)) AS 其他_隧道窑其他_试验不良,
+								to_char(nvl(detailmx.其他_隧道窑其他试验不良,0)) AS 其他_隧道窑其他_试验不良,
 								nvl(f.其他_缺陷汇总,0) AS 其他_隧道窑其他_缺陷汇总,
 								DECODE( NVL( f.其他_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.其他_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 其他_隧道窑其他_缺陷率
 								FROM 检验数
 									LEFT JOIN 产品 ON 检验数.GOODSCODE=产品.GOODSCODE
-									LEFT JOIN  产品明细缺陷  s ON 产品.GOODSCODE=s.GOODSCODE
+									LEFT JOIN  产品明细缺陷  detailmx ON 产品.GOODSCODE=detailmx.GOODSCODE
 									LEFT JOIN 产品汇总缺陷 f ON f.GOODSCODE=产品.GOODSCODE 
 									LEFT JOIN  打磨擦洗出窑数  ON 1=1
 											UNION ALL
@@ -553,150 +553,150 @@ SELECT
 								to_Char(检验数.残品),
 								to_Char(检验数.残品重量),
 								DECODE( NVL( 检验数.合格量, 0 ), 0, '0%', TO_CHAR( ( NVL( 检验数.合格量, 0 ) / DECODE( NVL(检验数.检验量, 1 ), 0, 1, NVL(检验数.检验量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 合格率,
-								DECODE( NVL( s.成型半检缺陷_坯脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_坯脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_棕眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_棕眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_裂底, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂底, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_裂圈, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂圈, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_裂鼻子, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂鼻子, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_裂水道, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂水道, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_裂管, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂管, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_沾接裂, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_沾接裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_裂眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_糙活, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_糙活, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_变形, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_变形, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_渣, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_管道渣, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_管道渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_孔眼不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_孔眼不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_堵眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_堵眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_眼歪, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_眼歪, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_丢气孔, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_丢气孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_丢眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_丢眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_漏气, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_漏气, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_空泡, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_空泡, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_水封不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_水封不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_漏水, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_漏水, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_卡球, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_卡球, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_冲刷不好, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_冲刷不好, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_泥埂, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_泥埂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_断浆迹, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_断浆迹, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_模迹, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_模迹, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_重皮, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_重皮, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_气泡, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_气泡, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_眼扁, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_眼扁, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_水绺, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_水绺, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_裂, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_活糙, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_活糙, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_贴码不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_贴码不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_干补不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_干补不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_内漏不合格, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_内漏不合格, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_外漏不合格, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_外漏不合格, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_试水不合格, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_试水不合格, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.成型半检缺陷_梭式窑其他蹦脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_梭式窑其他蹦脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+								DECODE( NVL( detailmx.成型半检缺陷_坯脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_坯脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_棕眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_棕眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_裂底, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_裂底, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_裂圈, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_裂圈, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_裂鼻子, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_裂鼻子, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_裂水道, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_裂水道, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_裂管, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_裂管, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_沾接裂, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_沾接裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_裂眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_裂眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_糙活, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_糙活, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_变形, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_变形, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_渣, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_管道渣, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_管道渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_孔眼不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_孔眼不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_堵眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_堵眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_眼歪, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_眼歪, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_丢气孔, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_丢气孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_丢眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_丢眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_漏气, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_漏气, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_空泡, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_空泡, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_水封不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_水封不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_漏水, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_漏水, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_卡球, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_卡球, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_冲刷不好, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_冲刷不好, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_泥埂, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_泥埂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_断浆迹, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_断浆迹, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_模迹, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_模迹, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_重皮, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_重皮, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_气泡, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_气泡, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_眼扁, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_眼扁, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_水绺, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_水绺, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_裂, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_活糙, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_活糙, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_贴码不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_贴码不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_干补不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_干补不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_内漏不合格, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_内漏不合格, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_外漏不合格, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_外漏不合格, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_试水不合格, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_试水不合格, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.成型半检缺陷_梭式窑其他蹦脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.成型半检缺陷_梭式窑其他蹦脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.成型半检缺陷__缺陷汇总,
 								DECODE( NVL( f.成型半检缺陷__缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.成型半检缺陷__缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 成型半检缺陷__缺陷率,
-DECODE( NVL( s.精修缺陷_打磨缺陷_糙活, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_糙活, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_变形, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_变形, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_渣, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_管道渣, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_管道渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_孔眼不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_孔眼不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_睹眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_睹眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_眼歪, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_眼歪, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_丢气孔, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_丢气孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_丢眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_丢眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_水封不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_水封不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_卡球, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_卡球, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_打磨缺陷_活糙, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_打磨缺陷_活糙, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_糙活, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_糙活, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_变形, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_变形, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_渣, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_管道渣, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_管道渣, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_孔眼不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_孔眼不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_睹眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_睹眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_眼歪, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_眼歪, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_丢气孔, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_丢气孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_丢眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_丢眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_水封不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_水封不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_卡球, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_卡球, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_打磨缺陷_活糙, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_打磨缺陷_活糙, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.精修缺陷_打磨缺陷_缺陷汇总,
 								DECODE( NVL( f.精修缺陷_打磨缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.精修缺陷_打磨缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.打磨, 1 ), 0, 1, NVL( 打磨擦洗出窑数.打磨, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 精修缺陷_打磨缺陷_缺陷率,
-DECODE( NVL( s.精修缺陷_刷洗缺陷_坯脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_坯脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_棕眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_棕眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_裂底, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_裂底, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_裂圈, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_裂圈, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_裂鼻子, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_裂鼻子, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_裂水道, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_裂水道, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_裂管, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_裂管, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_沾接裂, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_沾接裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_裂眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_裂眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_糙活, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_糙活, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_断浆迹, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_断浆迹, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_活糙, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_活糙, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.精修缺陷_刷洗缺陷_裂, 0 ), 0, '0%', TO_CHAR( ( NVL( s.精修缺陷_刷洗缺陷_裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_坯脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_坯脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_棕眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_棕眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_裂底, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_裂底, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_裂圈, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_裂圈, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_裂鼻子, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_裂鼻子, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_裂水道, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_裂水道, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_裂管, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_裂管, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_沾接裂, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_沾接裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_裂眼, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_裂眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_糙活, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_糙活, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_断浆迹, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_断浆迹, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_活糙, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_活糙, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.精修缺陷_刷洗缺陷_裂, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.精修缺陷_刷洗缺陷_裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.精修缺陷_刷洗缺陷_缺陷汇总,
 								DECODE( NVL( f.精修缺陷_刷洗缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.精修缺陷_刷洗缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.擦洗, 1 ), 0, 1, NVL( 打磨擦洗出窑数.擦洗, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 精修缺陷_刷洗缺陷_缺陷率,
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_滚釉, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_滚釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_釉薄, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_釉薄, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_釉不匀, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_釉不匀, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_釉磕, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_釉磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_釉脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_釉脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_釉沾, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_釉沾, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_釉绺, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_釉绺, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_针孔, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_针孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_施釉缺陷_色脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_施釉缺陷_色脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_滚釉, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_滚釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉薄, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉薄, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉不匀, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉不匀, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉磕, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉沾, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉沾, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉绺, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_釉绺, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_针孔, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_针孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_色脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_施釉缺陷_色脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 	f.施釉擦坯缺陷_施釉缺陷_缺陷汇总,
 								DECODE( NVL( f.施釉擦坯缺陷_施釉缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.施釉擦坯缺陷_施釉缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 施釉擦坯缺陷_施釉缺陷_缺陷率,
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_灌釉不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_灌釉不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_擦脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_擦脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_崩标, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_崩标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_倒标, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_倒标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_标污, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_标污, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_错标, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_错标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_丢标, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_丢标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_标错位, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_标错位, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_未灌釉, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_未灌釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_灌磕, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_灌磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_坯磕, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_坯磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.施釉擦坯缺陷_擦坯缺陷_碱石, 0 ), 0, '0%', TO_CHAR( ( NVL( s.施釉擦坯缺陷_擦坯缺陷_碱石, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_灌釉不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_灌釉不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_擦脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_擦脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_崩标, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_崩标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_倒标, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_倒标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_标污, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_标污, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_错标, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_错标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_丢标, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_丢标, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_标错位, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_标错位, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_未灌釉, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_未灌釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_灌磕, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_灌磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_坯磕, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_坯磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_碱石, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.施釉擦坯缺陷_擦坯缺陷_碱石, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 	f.施釉擦坯缺陷_擦坯缺陷_缺陷汇总,
 								DECODE( NVL( f.施釉擦坯缺陷_擦坯缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.施釉擦坯缺陷_擦坯缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 施釉擦坯缺陷_擦坯缺陷_缺陷率,
-DECODE( NVL( s.回烧缺陷_装窑缺陷_落脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_落脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_装窑缺陷_装沾, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_装沾, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_装窑缺陷_装磕, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_装磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_装窑缺陷_装裂, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_装裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_装窑缺陷_装走, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_装走, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_装窑缺陷_装脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_装脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_装窑缺陷_缺釉, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_缺釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_装窑缺陷_板折, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_装窑缺陷_板折, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_落脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_落脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_装沾, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_装沾, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_装磕, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_装磕, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_装裂, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_装裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_装走, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_装走, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_装脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_装脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_缺釉, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_缺釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_装窑缺陷_板折, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_装窑缺陷_板折, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.回烧缺陷_装窑缺陷_缺陷汇总,
 								DECODE( NVL( f.回烧缺陷_装窑缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧缺陷_装窑缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧缺陷_装窑缺陷_缺陷率,
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_水滴, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_水滴, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_窑脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_窑脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_烧裂, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_烧裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_针孔, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_针孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_风惊, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_风惊, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_烧生, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_烧生, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_串烟, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_串烟, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_烧坑, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_烧坑, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_桔釉, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_桔釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_过火, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_过火, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_火燎, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_火燎, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_烧窑缺陷_烧走, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_烧窑缺陷_烧走, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_水滴, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_水滴, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_窑脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_窑脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_烧裂, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_烧裂, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_针孔, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_针孔, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_风惊, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_风惊, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_烧生, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_烧生, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_串烟, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_串烟, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_烧坑, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_烧坑, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_桔釉, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_桔釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_过火, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_过火, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_火燎, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_火燎, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_烧窑缺陷_烧走, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_烧窑缺陷_烧走, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.回烧缺陷_烧窑缺陷_缺陷汇总,
 								DECODE( NVL( f.回烧缺陷_烧窑缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧缺陷_烧窑缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧缺陷_烧窑缺陷_缺陷率,
-DECODE( NVL( s.回烧缺陷_出窑缺陷_磕碰, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_出窑缺陷_磕碰, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧缺陷_出窑缺陷_划釉, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧缺陷_出窑缺陷_划釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_出窑缺陷_磕碰, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_出窑缺陷_磕碰, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧缺陷_出窑缺陷_划釉, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧缺陷_出窑缺陷_划釉, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.回烧缺陷_出窑缺陷_缺陷汇总,
 								DECODE( NVL( f.回烧缺陷_出窑缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧缺陷_出窑缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧缺陷_出窑缺陷_缺陷率,
 
-DECODE( NVL( s.回烧修补缺陷_修补不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧修补缺陷_修补不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧修补缺陷_漏修, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧修补缺陷_漏修, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧修补缺陷_漏检, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧修补缺陷_漏检, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.回烧修补缺陷_白点, 0 ), 0, '0%', TO_CHAR( ( NVL( s.回烧修补缺陷_白点, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧修补缺陷_修补不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧修补缺陷_修补不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧修补缺陷_漏修, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧修补缺陷_漏修, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧修补缺陷_漏检, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧修补缺陷_漏检, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.回烧修补缺陷_白点, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.回烧修补缺陷_白点, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.回烧修补_缺陷汇总,
 								DECODE( NVL( f.回烧修补_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.回烧修补_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 回烧修补缺陷__缺陷率,
 
-DECODE( NVL( s.原料缺陷_泥料缺陷_铜脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.原料缺陷_泥料缺陷_铜脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.原料缺陷_泥料缺陷_料脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.原料缺陷_泥料缺陷_料脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.原料缺陷_釉料缺陷_铜脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.原料缺陷_釉料缺陷_铜脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
-DECODE( NVL( s.原料缺陷_釉料缺陷_铁脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.原料缺陷_釉料缺陷_铁脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.原料缺陷_泥料缺陷_铜脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.原料缺陷_泥料缺陷_铜脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.原料缺陷_泥料缺陷_料脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.原料缺陷_泥料缺陷_料脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.原料缺陷_釉料缺陷_铜脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.原料缺陷_釉料缺陷_铜脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.原料缺陷_釉料缺陷_铁脏, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.原料缺陷_釉料缺陷_铁脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 f.原料缺陷_缺陷汇总 AS 原料缺陷__缺陷汇总,
 								DECODE( NVL( f.原料缺陷_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.原料缺陷_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 原料缺陷__缺陷率,
 
-DECODE( NVL( s.其他_隧道窑其他试验不良, 0 ), 0, '0%', TO_CHAR( ( NVL( s.其他_隧道窑其他试验不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
+DECODE( NVL( detailmx.其他_隧道窑其他试验不良, 0 ), 0, '0%', TO_CHAR( ( NVL( detailmx.其他_隧道窑其他试验不良, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 	f.其他_缺陷汇总 AS 其他_缺陷汇总,
 								DECODE( NVL( f.其他_缺陷汇总, 0 ), 0, '0%', TO_CHAR( ( NVL( f.其他_缺陷汇总, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 其他_缺陷率
 							FROM 检验数
 									LEFT JOIN 产品 ON 检验数.GOODSCODE=产品.GOODSCODE
-									LEFT JOIN  产品明细缺陷  s ON 产品.GOODSCODE=s.GOODSCODE
+									LEFT JOIN  产品明细缺陷  detailmx ON 产品.GOODSCODE=detailmx.GOODSCODE
 									LEFT JOIN 产品汇总缺陷 f ON f.GOODSCODE=产品.GOODSCODE 
 									LEFT JOIN  打磨擦洗出窑数  ON 1=1
 								WHERE 检验数.GOODSCODE='总计'
@@ -2491,7 +2491,7 @@ ORDER BY 产品类别,产品编码";
             //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
             //获取分页参数
             int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
-            int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
+            int rows = HttpContext.Current.Request["rows"] is int ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
             string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
             string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
 

+ 25 - 7
wwwroot/mes/rpt/rpt305/rpt.ashx

@@ -55,7 +55,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											SUM(出窑量_残品* LUSTERWAREWEIGHT) 出窑量_残品重量,
 											SUM(原料缺陷) 原料缺陷,
 											SUM(成型缺陷_成A) 成型缺陷_成A,SUM(成型缺陷_成B) 成型缺陷_成B,
-											SUM(成型缺陷_成C) 成型缺陷_成C,SUM(成型缺陷_高压) 成型缺陷_高压, 
+											SUM(成型缺陷_成C) 成型缺陷_成C,SUM(成型缺陷_高压) 成型缺陷_高压, SUM(成型缺陷_干补) 成型缺陷_干补, 
 											SUM(成型缺陷_打磨) 成型缺陷_打磨,SUM(成型缺陷_擦洗) 成型缺陷_擦洗,
 											SUM(成型缺陷_半检) 成型缺陷_半检,SUM(烧成缺陷_施釉)烧成缺陷_施釉,
 											SUM(烧成缺陷_擦坯) 烧成缺陷_擦坯,SUM(烧成缺陷_装窑) 烧成缺陷_装窑, 
@@ -75,7 +75,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'A') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成A,
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'B') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成B,
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'C') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成C,
-                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,																	TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35'  ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
+                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,	
+                                                COUNT(DISTINCT CASE WHEN   PD.GROUTINGLINECODE='00' AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_干补,																TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35'  ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
 									            TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '28', '34', '35' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_擦洗,
                                                 COUNT(DISTINCT CASE WHEN  df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','19','20','25','26','27','28','29','30','12','13','14','15','16','17','18','23','31','32','33','34','35') AND DEFECT.VALUEFLAG=1  THEN PD.BARCODE||df.DEFECTCODE ELSE NULL END) 成型缺陷_半检,
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成缺陷_施釉,
@@ -134,6 +135,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%B%'  THEN PD.BARCODE ELSE NULL END )) 成B出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%C%'  THEN PD.BARCODE ELSE NULL END )) 成C出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  GL.HIGHPRESSUREFLAG =1  THEN PD.BARCODE ELSE NULL END )) 高压出窑量,
+											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE ='00'  THEN PD.BARCODE ELSE NULL END )) 干补出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1  THEN PD.BARCODE ELSE NULL END )) 打磨出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 THEN PD.BARCODE ELSE NULL END )) 擦洗出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID =6  THEN PD.BARCODE ELSE NULL END )) 半检出窑量,
@@ -173,6 +175,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TO_CHAR(成型缺陷_成B) AS 成型缺陷_成B,
                                         TO_CHAR(成型缺陷_成C) AS 成型缺陷_成C,
                                         TO_CHAR(成型缺陷_高压) AS 成型缺陷_高压,
+                                        TO_CHAR(成型缺陷_干补) AS 成型缺陷_干补,
                                         TO_CHAR(成型缺陷_打磨) AS 成型缺陷_打磨,
                                         TO_CHAR(成型缺陷_擦洗) AS 成型缺陷_擦洗,
                                         TO_CHAR(成型缺陷_半检) AS 成型缺陷_半检,
@@ -202,6 +205,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 									to_Char(成B出窑量),
 									to_Char(成C出窑量),
 									to_Char(高压出窑量),
+									to_Char(干补出窑量),
 									to_Char(打磨出窑量),
 									to_Char(擦洗出窑量),
 									to_Char(半检出窑量),
@@ -235,6 +239,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       DECODE( NVL(  数据源.成型缺陷_成C, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_成C, 0 ) / DECODE( NVL( 工序对应出窑量.成C出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.成C出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_成C,
 																			
                                       DECODE( NVL(  数据源.成型缺陷_高压, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_高压, 0 ) / DECODE( NVL( 工序对应出窑量.高压出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.高压出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_高压,
+
+                                      DECODE( NVL(  数据源.成型缺陷_干补, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_干补, 0 ) / DECODE( NVL( 工序对应出窑量.干补出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.干补出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_干补,
 																			
                                       DECODE( NVL(  数据源.成型缺陷_打磨, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_打磨, 0 ) / DECODE( NVL( 工序对应出窑量.打磨出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.打磨出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_打磨,
 																			
@@ -281,7 +287,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											SUM(出窑量_残品* LUSTERWAREWEIGHT) 出窑量_残品重量,
 											SUM(原料缺陷) 原料缺陷,
 											SUM(成型缺陷_成A) 成型缺陷_成A,SUM(成型缺陷_成B) 成型缺陷_成B,
-											SUM(成型缺陷_成C) 成型缺陷_成C,SUM(成型缺陷_高压) 成型缺陷_高压, 
+											SUM(成型缺陷_成C) 成型缺陷_成C,SUM(成型缺陷_高压) 成型缺陷_高压, SUM(成型缺陷_干补) 成型缺陷_干补, 
 											SUM(成型缺陷_打磨) 成型缺陷_打磨,SUM(成型缺陷_擦洗) 成型缺陷_擦洗,
 											SUM(成型缺陷_半检) 成型缺陷_半检,SUM(烧成缺陷_施釉)烧成缺陷_施釉,
 											SUM(烧成缺陷_擦坯) 烧成缺陷_擦坯,SUM(烧成缺陷_装窑) 烧成缺陷_装窑, 
@@ -301,7 +307,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'A') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成A,
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'B') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (  df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成B,
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'C') > 0 AND PD.HIGHPRESSUREFLAG=0 AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成C,
-                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND (  df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,																	TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35'  ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
+                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND (  df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,
+                                                COUNT(DISTINCT CASE WHEN   PD.GROUTINGLINECODE='00' AND (  df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_干补,																		TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35'  ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
 									            TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '28', '34', '35' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_擦洗,
                                                 COUNT(DISTINCT CASE WHEN  DEFECT.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','19','20','25','26','27','28','29','30','12','13','14','15','16','17','18','23','31','32','33','34','35') AND DEFECT.VALUEFLAG=1 THEN PD.BARCODE||df.DEFECTCODE ELSE NULL END) 成型缺陷_半检,
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成缺陷_施釉,
@@ -369,6 +376,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%B%'  THEN PD.BARCODE ELSE NULL END )) 成B出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%C%'  THEN PD.BARCODE ELSE NULL END )) 成C出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  GL.HIGHPRESSUREFLAG =1  THEN PD.BARCODE ELSE NULL END )) 高压出窑量,
+											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE ='00'  THEN PD.BARCODE ELSE NULL END )) 干补出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1  THEN PD.BARCODE ELSE NULL END )) 打磨出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 THEN PD.BARCODE ELSE NULL END )) 擦洗出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID =6  THEN PD.BARCODE ELSE NULL END )) 半检出窑量,
@@ -409,6 +417,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TO_CHAR(成型缺陷_成B) AS 成型缺陷_成B,
                                         TO_CHAR(成型缺陷_成C) AS 成型缺陷_成C,
                                         TO_CHAR(成型缺陷_高压) AS 成型缺陷_高压,
+                                        TO_CHAR(成型缺陷_干补) AS 成型缺陷_干补,
                                         TO_CHAR(成型缺陷_打磨) AS 成型缺陷_打磨,
                                         TO_CHAR(成型缺陷_擦洗) AS 成型缺陷_擦洗,
                                         TO_CHAR(成型缺陷_半检) AS 成型缺陷_半检,
@@ -438,6 +447,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 									to_Char(成B出窑量),
 									to_Char(成C出窑量),
 									to_Char(高压出窑量),
+									to_Char(干补出窑量),
 									to_Char(打磨出窑量),
 									to_Char(擦洗出窑量),
 									to_Char(半检出窑量),
@@ -472,6 +482,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																			
                                       DECODE( NVL(  数据源.成型缺陷_高压, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_高压, 0 ) / DECODE( NVL( 工序对应出窑量.高压出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.高压出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_高压,
 																			
+                                      DECODE( NVL(  数据源.成型缺陷_干补, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_干补, 0 ) / DECODE( NVL( 工序对应出窑量.干补出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.干补出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_干补,
+																			
                                       DECODE( NVL(  数据源.成型缺陷_打磨, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_打磨, 0 ) / DECODE( NVL( 工序对应出窑量.打磨出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.打磨出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_打磨,
 																			
                                       DECODE( NVL(  数据源.成型缺陷_擦洗, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_擦洗, 0 ) / DECODE( NVL( 工序对应出窑量.擦洗出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.擦洗出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_擦洗,
@@ -517,7 +529,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											SUM(出窑量_残品* LUSTERWAREWEIGHT) 出窑量_残品重量,
 											SUM(原料缺陷) 原料缺陷,
 											SUM(成型缺陷_成A) 成型缺陷_成A,SUM(成型缺陷_成B) 成型缺陷_成B,
-											SUM(成型缺陷_成C) 成型缺陷_成C,SUM(成型缺陷_高压) 成型缺陷_高压, 
+											SUM(成型缺陷_成C) 成型缺陷_成C,SUM(成型缺陷_高压) 成型缺陷_高压, SUM(成型缺陷_干补) 成型缺陷_干补, 
 											SUM(成型缺陷_打磨) 成型缺陷_打磨,SUM(成型缺陷_擦洗) 成型缺陷_擦洗,
 											SUM(成型缺陷_半检) 成型缺陷_半检,SUM(烧成缺陷_施釉)烧成缺陷_施釉,
 											SUM(烧成缺陷_擦坯) 烧成缺陷_擦坯,SUM(烧成缺陷_装窑) 烧成缺陷_装窑, 
@@ -537,7 +549,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'A') > 0 AND PD.HIGHPRESSUREFLAG=0 AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成A,
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'B') > 0 AND PD.HIGHPRESSUREFLAG=0 AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成B,
                                                 COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'C') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (  df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成C,
-                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,																	TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35'  ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
+                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,	
+                                                COUNT(DISTINCT CASE WHEN   PD.GROUTINGLINECODE='00' AND ( df.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_干补,																	TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35'  ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
 									            TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '28', '34', '35' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_擦洗,
                                                 COUNT(DISTINCT CASE WHEN DEFECT.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','19','20','25','26','27','28','29','30','12','13','14','15','16','17','18','23','31','32','33','34','35') AND DEFECT.VALUEFLAG=1 THEN PD.BARCODE||df.DEFECTCODE ELSE NULL END) 成型缺陷_半检,
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成缺陷_施釉,
@@ -604,6 +617,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%B%'  THEN PD.BARCODE ELSE NULL END )) 成B出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%C%'  THEN PD.BARCODE ELSE NULL END )) 成C出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  GL.HIGHPRESSUREFLAG =1  THEN PD.BARCODE ELSE NULL END )) 高压出窑量,
+											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE ='00'  THEN PD.BARCODE ELSE NULL END )) 干补出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1  THEN PD.BARCODE ELSE NULL END )) 打磨出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 THEN PD.BARCODE ELSE NULL END )) 擦洗出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID =6  THEN PD.BARCODE ELSE NULL END )) 半检出窑量,
@@ -643,6 +657,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TO_CHAR(成型缺陷_成B) AS 成型缺陷_成B,
                                         TO_CHAR(成型缺陷_成C) AS 成型缺陷_成C,
                                         TO_CHAR(成型缺陷_高压) AS 成型缺陷_高压,
+                                        TO_CHAR(成型缺陷_干补) AS 成型缺陷_干补,
                                         TO_CHAR(成型缺陷_打磨) AS 成型缺陷_打磨,
                                         TO_CHAR(成型缺陷_擦洗) AS 成型缺陷_擦洗,
                                         TO_CHAR(成型缺陷_半检) AS 成型缺陷_半检,
@@ -674,6 +689,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 									to_Char(成B出窑量),
 									to_Char(成C出窑量),
 									to_Char(高压出窑量),
+									to_Char(干补出窑量),
 									to_Char(打磨出窑量),
 									to_Char(擦洗出窑量),
 									to_Char(半检出窑量),
@@ -709,6 +725,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																			
                                       DECODE( NVL(  数据源.成型缺陷_高压, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_高压, 0 ) / DECODE( NVL( 工序对应出窑量.高压出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.高压出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_高压,
 																			
+                                      DECODE( NVL(  数据源.成型缺陷_干补, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_干补, 0 ) / DECODE( NVL( 工序对应出窑量.干补出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.干补出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_干补,
+																			
                                       DECODE( NVL(  数据源.成型缺陷_打磨, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_打磨, 0 ) / DECODE( NVL( 工序对应出窑量.打磨出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.打磨出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_打磨,
 																			
                                       DECODE( NVL(  数据源.成型缺陷_擦洗, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_擦洗, 0 ) / DECODE( NVL( 工序对应出窑量.擦洗出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.擦洗出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_擦洗,
@@ -740,7 +758,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
             //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
             //获取分页参数
             int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
-            int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
+            int rows = HttpContext.Current.Request["rows"] is int ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
             string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
             string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
 

+ 57 - 13
wwwroot/mes/rpt/rpt306/rpt.ashx

@@ -37,8 +37,7 @@ GDD.USERCODE,
 GDD.GOODSCODE
 FROM TP_PM_GROUTINGDAILYDETAIL GDD
 LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINECODE= GDD.GROUTINGLINECODE
-where GDD.GROUTINGLINECODE<>'00'
-AND  GDD.GROUTINGLINECODE<>'公坯' 
+where  GDD.GROUTINGLINECODE<>'公坯' 
 GROUP BY GDD.GROUTINGLINECODE,
 GDD.USERCODE,
 GDD.GOODSCODE
@@ -148,12 +147,29 @@ count(1) 注浆取消 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAI
 	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
 	GROUTINGLINECODE
 	),
+	实时注浆个数 AS (
+	select 
+		gdd.USERCODE,
+	gdd.GOODSCODE,
+	gdd.GROUTINGLINECODE,
+count(1) 实时注浆个数  FROM TP_PM_GroutingDailyDetail gdd INNER JOIN TP_PM_GroutingDaily gd ON gd.GroutingDailyID = gdd.GroutingDailyID
+	                                    INNER JOIN TP_PC_GroutingLine ON TP_PC_GroutingLine.GroutingLineID = gdd.GroutingLineID
+	                                    INNER JOIN TP_MST_GMouldType ON TP_MST_GMouldType.GMOULDTYPEID = TP_PC_GroutingLine.GMOULDTYPEID
+	                                    INNER JOIN TP_MST_Goods ON TP_MST_Goods.Goodsid = gdd.GoodsID
+	                                    INNER JOIN TP_MST_DataDictionary ON TP_MST_DataDictionary.Dictionaryid = TP_MST_Goods.Glazetypeid
+	                                    INNER JOIN TP_MST_GOODSTYPE ON TP_MST_GOODSTYPE.GOODSTYPEID = TP_MST_Goods.Goodstypeid
+	                                    INNER JOIN tp_sys_gmouldstatus ON gdd.gmouldstatus = tp_sys_gmouldstatus.gmouldstatusid
+																			 WHERE gdd.Valueflag = 1 AND gdd.GROUTINGFLAG = 1 AND gdd.AccountID = 1 and gdd.CREATETIME >=@DATEBEGIN@ and gdd.CREATETIME <=@DATEEND@ GROUP BY
+		gdd.USERCODE,
+	gdd.GOODSCODE,
+	gdd.GROUTINGLINECODE
+),
 	注浆损失 AS (
 	select 
 	USERCODE,
 	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
 	GROUTINGLINECODE,
-count(1) 注浆损失 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL ON TP_PM_GROUTINGDAILYDETAIL.GROUTINGDAILYDETAILID = TP_PM_GOODSCHANGEHISTORY.GROUTINGDAILYDETAILID where TP_PM_GOODSCHANGEHISTORY.DATATYPE=3  and TP_PM_GOODSCHANGEHISTORY.CREATETIME>=@DATEBEGIN@ and  TP_PM_GOODSCHANGEHISTORY.CREATETIME<=@DATEEND@ GROUP BY
+count(1) 注浆损失 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL ON TP_PM_GROUTINGDAILYDETAIL.GROUTINGDAILYDETAILID = TP_PM_GOODSCHANGEHISTORY.GROUTINGDAILYDETAILID where TP_PM_GOODSCHANGEHISTORY.DATATYPE=3 and TP_PM_GROUTINGDAILYDETAIL.SCRAPTYPE=1  and TP_PM_GOODSCHANGEHISTORY.CREATETIME>=@DATEBEGIN@ and  TP_PM_GOODSCHANGEHISTORY.CREATETIME<=@DATEEND@ GROUP BY
 	USERCODE,
 	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
 	GROUTINGLINECODE
@@ -164,13 +180,34 @@ count(1) 注浆损失 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAI
 	USERCODE,
 	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
 	GROUTINGLINECODE,
-count(1) 注浆损失取消 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL ON TP_PM_GROUTINGDAILYDETAIL.GROUTINGDAILYDETAILID = TP_PM_GOODSCHANGEHISTORY.GROUTINGDAILYDETAILID where TP_PM_GOODSCHANGEHISTORY.DATATYPE=4  and TP_PM_GOODSCHANGEHISTORY.CREATETIME>=@DATEBEGIN@ and  TP_PM_GOODSCHANGEHISTORY.CREATETIME<=@DATEEND@ GROUP BY
+count(1) 注浆损失取消 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL ON TP_PM_GROUTINGDAILYDETAIL.GROUTINGDAILYDETAILID = TP_PM_GOODSCHANGEHISTORY.GROUTINGDAILYDETAILID where TP_PM_GOODSCHANGEHISTORY.DATATYPE=4  and TP_PM_GROUTINGDAILYDETAIL.SCRAPTYPE=1  and TP_PM_GOODSCHANGEHISTORY.CREATETIME>=@DATEBEGIN@ and  TP_PM_GOODSCHANGEHISTORY.CREATETIME<=@DATEEND@ GROUP BY
+	USERCODE,
+	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
+	GROUTINGLINECODE
+	)
+	,
+		开模注浆损失 AS (
+	select 
+	USERCODE,
+	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
+	GROUTINGLINECODE,
+count(1) 开模注浆损失 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL ON TP_PM_GROUTINGDAILYDETAIL.GROUTINGDAILYDETAILID = TP_PM_GOODSCHANGEHISTORY.GROUTINGDAILYDETAILID where TP_PM_GOODSCHANGEHISTORY.DATATYPE=3  and TP_PM_GROUTINGDAILYDETAIL.SCRAPTYPE=0  and TP_PM_GOODSCHANGEHISTORY.CREATETIME>=@DATEBEGIN@ and  TP_PM_GOODSCHANGEHISTORY.CREATETIME<=@DATEEND@ GROUP BY
+	USERCODE,
+	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
+	GROUTINGLINECODE
+	)
+	,
+	开模注浆损失取消 AS (
+	select 
+	USERCODE,
+	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
+	GROUTINGLINECODE,
+count(1) 开模注浆损失取消 from TP_PM_GOODSCHANGEHISTORY  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL ON TP_PM_GROUTINGDAILYDETAIL.GROUTINGDAILYDETAILID = TP_PM_GOODSCHANGEHISTORY.GROUTINGDAILYDETAILID where TP_PM_GOODSCHANGEHISTORY.DATATYPE=4  and TP_PM_GROUTINGDAILYDETAIL.SCRAPTYPE=0  and TP_PM_GOODSCHANGEHISTORY.CREATETIME>=@DATEBEGIN@ and  TP_PM_GOODSCHANGEHISTORY.CREATETIME<=@DATEEND@ GROUP BY
 	USERCODE,
 	TP_PM_GOODSCHANGEHISTORY.GOODSCODE,
 	GROUTINGLINECODE
 	)
 	,
-
 损坯 AS (
 	 select   
 	GROUTINGUSERCODE,
@@ -222,7 +259,8 @@ select tb1.*,(SELECT max(GROUTINGCOUNT) FROM TP_PM_GROUTINGDAILYDETAIL WHERE TP_
 							 WHEN 车间= '1B' THEN '成B'	
 							 WHEN 车间= '1C' THEN '成C' 
 							 WHEN 车间= '1D' THEN '成D' 
-							 WHEN 车间= '8-' THEN '高压' ELSE ''  END   ) 
+							 WHEN 车间= '8-' THEN '高压' 
+							 WHEN 车间= '00' THEN '干补' ELSE ''  END   ) 
 					WHEN GROUPING_ID ( USERCODE, USERNAME, GOODSCODE, GOODSNAME, GOODSSPECIFICATION,	车间 ) = 63 THEN
 						'总计' ELSE NULL  END AS 统计方式,
 						GROUTINGLINECODE 成型线编码,
@@ -235,11 +273,12 @@ select tb1.*,(SELECT max(GROUTINGCOUNT) FROM TP_PM_GROUTINGDAILYDETAIL WHERE TP_
 					nvl(sum(应注模型数量),0) 应注模型数量,
 					nvl(sum(期初数),0) 期初,
 					sum(交坯个数) 交坯个数,sum(交坯取消) 交坯取消,
-							sum(注浆损失) 注浆损失,sum(注浆损失取消) 注浆损失取消,
-							sum(注浆个数) 注浆个数,sum(注浆取消) 注浆取消,
+							sum(注浆个数) 注浆个数,sum(注浆取消) 注浆取消,sum(实时注浆个数) 实时注浆个数,
+							sum(注浆损失) 干损损失,sum(注浆损失取消) 干损损失取消,
+							sum(开模注浆损失) 湿损损失,sum(开模注浆损失取消) 湿损损失取消,
 							 sum(毛坯损失) 毛坯损失,sum(毛坯损失取消) 毛坯损失取消,
 							 sum(在产撤销清除) 在产撤销清除转入,sum(在产清除) 在产清除转出,
-					nvl(nvl(sum(期初数),0) + nvl(sum(注浆个数),0)-nvl(sum(注浆取消),0) - nvl(SUM(交坯个数),0)+nvl(SUM(交坯取消),0)-nvl(sum(注浆损失),0)+nvl(sum(注浆损失取消),0)  - nvl(SUM(在产清除),0)+nvl(SUM(在产撤销清除),0)- nvl(SUM(毛坯损失),0)+nvl(SUM(毛坯损失取消),0),0) 期末数,
+					nvl(nvl(sum(期初数),0) + nvl(sum(注浆个数),0)-nvl(sum(注浆取消),0) - nvl(SUM(交坯个数),0)+nvl(SUM(交坯取消),0)-nvl(sum(注浆损失),0)+nvl(sum(注浆损失取消),0) -nvl(sum(开模注浆损失),0)+nvl(sum(开模注浆损失取消),0) - nvl(SUM(在产清除),0)+nvl(SUM(在产撤销清除),0)- nvl(SUM(毛坯损失),0)+nvl(SUM(毛坯损失取消),0),0) 期末数,
 					DECODE(NVL( SUM(注浆个数), 0 ),0,'-',TO_CHAR(( ( NVL( SUM(交坯个数), 0 ) / DECODE( NVL( sum(注浆个数), 1 ), 0, 1, NVL( sum(注浆个数), 1 ) ) ) ) * 100,'fm99990.00' ) || '%' ) 保坯率,
 					DECODE(NVL( sum(应注模型数量), 0 ),0,'-',TO_CHAR(( ( NVL( sum(应注模型数量), 0 ) / DECODE( NVL( sum(模型设置数量), 1 ), 0, 1, NVL( sum(模型设置数量), 1 ) ) ) ) * 100,'fm99990.00' ) || '%') 模型利用率,
 					DECODE(NVL( SUM(模型设置数量), 0 ),0,'-',TO_CHAR(( ( ( sum(注浆个数)) / DECODE( nvl(sum(模型设置数量),1), 0, 1, nvl(sum(模型设置数量),1) ) ) ) * 100,'fm99990.00' ) || '%' ) 注浆率,
@@ -248,7 +287,8 @@ select tb1.*,(SELECT max(GROUTINGCOUNT) FROM TP_PM_GROUTINGDAILYDETAIL WHERE TP_
 							 WHEN 车间= '1B' THEN '成B' 
 							 WHEN 车间= '1C' THEN '成C' 
 							 WHEN 车间= '1D' THEN '成D' 
-							 WHEN 车间= '8-' THEN '高压' ELSE ''  END 车间 
+							 WHEN 车间= '8-' THEN '高压'
+							 WHEN 车间= '00' THEN '干补' ELSE ''  END 车间 
 				FROM(	
 							SELECT
 							基础数据.GROUTINGLINECODE,
@@ -261,7 +301,8 @@ select tb1.*,(SELECT max(GROUTINGCOUNT) FROM TP_PM_GROUTINGDAILYDETAIL WHERE TP_
 							期初.期初数 ,							
 							NVL(交坯.交坯个数,0) 交坯个数,NVL(交坯取消.交坯取消,0) 交坯取消,
 							NVL(注浆损失.注浆损失,0) 注浆损失,NVL(注浆损失取消.注浆损失取消,0) 注浆损失取消,
-							NVL(注浆.注浆个数,0) 注浆个数,NVL(注浆取消.注浆取消,0) 注浆取消,
+							NVL(开模注浆损失.开模注浆损失,0) 开模注浆损失,NVL(开模注浆损失取消.开模注浆损失取消,0) 开模注浆损失取消,
+							NVL(注浆.注浆个数,0) 注浆个数,NVL(注浆取消.注浆取消,0) 注浆取消,NVL(实时注浆个数.实时注浆个数,0) 实时注浆个数,
 							NVL(在产撤销清除,0) 在产撤销清除,NVL(在产清除,0) 在产清除,
 							模型数.模具数量 AS 模型设置数量,
 							模型数.应注次数 AS 应注模型数量,
@@ -282,8 +323,11 @@ select tb1.*,(SELECT max(GROUTINGCOUNT) FROM TP_PM_GROUTINGDAILYDETAIL WHERE TP_
 							Full JOIN 注浆明细 ON 注浆明细.USERCODE = 基础数据.USERCODE  AND 注浆明细.GOODSCODE =基础数据.GOODSCODE AND 注浆明细.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
 							Full JOIN 注浆 ON 注浆.USERCODE = 基础数据.USERCODE  AND 注浆.GOODSCODE =基础数据.GOODSCODE AND 注浆.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
 							Full JOIN 注浆取消 ON 注浆取消.USERCODE = 基础数据.USERCODE  AND 注浆取消.GOODSCODE =基础数据.GOODSCODE AND 注浆取消.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
+							Full JOIN 实时注浆个数 ON 实时注浆个数.USERCODE = 基础数据.USERCODE  AND 实时注浆个数.GOODSCODE =基础数据.GOODSCODE AND 实时注浆个数.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
 							Full JOIN 注浆损失 ON 注浆损失.USERCODE = 基础数据.USERCODE  AND 注浆损失.GOODSCODE =基础数据.GOODSCODE AND 注浆损失.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
 							Full JOIN 注浆损失取消 ON 注浆损失取消.USERCODE = 基础数据.USERCODE  AND 注浆损失取消.GOODSCODE =基础数据.GOODSCODE AND 注浆损失取消.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
+							Full JOIN 开模注浆损失 ON 开模注浆损失.USERCODE = 基础数据.USERCODE  AND 开模注浆损失.GOODSCODE =基础数据.GOODSCODE AND 开模注浆损失.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
+							Full JOIN 开模注浆损失取消 ON 开模注浆损失取消.USERCODE = 基础数据.USERCODE  AND 开模注浆损失取消.GOODSCODE =基础数据.GOODSCODE AND 开模注浆损失取消.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
 							Full JOIN 损坯 ON 损坯.GROUTINGUSERCODE = 基础数据.USERCODE  AND 损坯.GOODSCODE =基础数据.GOODSCODE AND 损坯.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
 							Full JOIN 损坯取消 ON 损坯取消.GROUTINGUSERCODE = 基础数据.USERCODE  AND 损坯取消.GOODSCODE =基础数据.GOODSCODE AND 损坯取消.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
 							Full JOIN 在产清除 ON  在产清除.USERCODE = 基础数据.USERCODE  AND 在产清除.GOODSCODE =基础数据.GOODSCODE AND 在产清除.GROUTINGLINECODE =基础数据.GROUTINGLINECODE 
@@ -292,7 +336,7 @@ select tb1.*,(SELECT max(GROUTINGCOUNT) FROM TP_PM_GROUTINGDAILYDETAIL WHERE TP_
 				)
 				
 				GROUP BY Grouping sets ( ( USERCODE,USERNAME,GOODSCODE,GOODSNAME,GOODSSPECIFICATION,	GROUTINGLINECODE,车间 ),(车间),())
-								ORDER BY 车间,GROUTINGLINECODE,USERCODE ) tb1 where 模型设置数量<>0  or 应注模型数量<>0 or 期初<>0 or 注浆个数<>0 or 交坯个数<>0  or 交坯取消<>0 or 注浆损失<>0 or 注浆损失取消<>0 or 注浆取消<>0 or 毛坯损失取消<>0 or 毛坯损失<>0 or 期末数<>0 ";
+								ORDER BY 车间,GROUTINGLINECODE,USERCODE ) tb1 where 模型设置数量<>0  or 应注模型数量<>0 or 期初<>0 or 注浆个数<>0 or 交坯个数<>0  or 交坯取消<>0 or 干损损失<>0 or 干损损失取消<>0 or 湿损损失<>0 or 湿损损失取消<>0  or 注浆取消<>0 or 毛坯损失取消<>0 or 毛坯损失<>0 or 期末数<>0 ";
 			}
 			//获取查询条件
 			List<CDAParameter> sqlPara = new List<CDAParameter>();
@@ -301,7 +345,7 @@ select tb1.*,(SELECT max(GROUTINGCOUNT) FROM TP_PM_GROUTINGDAILYDETAIL WHERE TP_
 			//sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
 			//获取分页参数
 			int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
-			int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
+			int rows = HttpContext.Current.Request["rows"] is int ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
 			string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
 			string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
 

+ 9 - 9
wwwroot/mes/rpt/rpt307/rpt.ashx

@@ -32,14 +32,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				sqlStr = @"WITH 精坯拉入 AS (
                                             SELECT
                                             GOODSCODE,
-                                            COUNT(DISTINCT BARCODE) NUMS
+                                            COUNT(1) NUMS
                                             FROM TP_PM_PRODUCTIONDATA
                                             WHERE CREATETIME>@DATEBEGIN@ AND CREATETIME<=@DATEEND@  AND PROCEDUREID=8 
                                             GROUP BY GOODSCODE
                                             ),精坯拉入取消 AS (
                                             SELECT
                                             GOODSCODE,
-                                            COUNT(DISTINCT BARCODE) NUMS
+                                            COUNT(1) NUMS
                                             FROM TP_PM_PRODUCTIONDATA
                                             WHERE BACKOUTTIME>@DATEBEGIN@ AND BACKOUTTIME<=@DATEEND@  AND PROCEDUREID=8 
                                             GROUP BY GOODSCODE
@@ -47,7 +47,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                             施釉转出 AS (
                                             SELECT
                                             GOODSCODE,
-                                            COUNT(DISTINCT BARCODE) NUMS
+                                            COUNT(1) NUMS
                                             FROM TP_PM_PRODUCTIONDATA
                                             WHERE CREATETIME>@DATEBEGIN@ AND CREATETIME<=@DATEEND@  AND PROCEDUREID IN(10,37,41,9) 
                                             GROUP BY GOODSCODE
@@ -55,7 +55,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                             施釉转出取消 AS (
                                             SELECT
                                             GOODSCODE,
-                                            COUNT(DISTINCT BARCODE) NUMS
+                                            COUNT(1) NUMS
                                             FROM TP_PM_PRODUCTIONDATA
                                             WHERE BACKOUTTIME>@DATEBEGIN@ AND BACKOUTTIME<=@DATEEND@  AND PROCEDUREID IN(10,37,41,9) 
                                             GROUP BY GOODSCODE
@@ -63,16 +63,16 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                             损坯 AS (
                                             SELECT
                                              scap.GOODSCODE,
-                                              COUNT(DISTINCT CASE WHEN scap.PROCEDUREID IN(10,37,41,9) THEN BARCODE ELSE NULL end) 施釉损失,
-                                             COUNT(DISTINCT CASE WHEN scap.PROCEDUREID IN(8)  THEN BARCODE ELSE NULL end) 精坯损失
+                                              COUNT( CASE WHEN scap.PROCEDUREID IN(10,37,41,9) THEN BARCODE ELSE NULL end) 施釉损失,
+                                             COUNT(CASE WHEN scap.PROCEDUREID IN(8)  THEN BARCODE ELSE NULL end) 精坯损失
                                             FROM TP_PM_SCRAPPRODUCT scap
-                                            WHERE scap.SCRAPDATE>=@DATEBEGIN@ AND scap.SCRAPDATE<@DATEEND@ 
+                                            WHERE scap.AUDITDATE>=@DATEBEGIN@ AND scap.AUDITDATE<@DATEEND@  
                                             GROUP BY  scap.GOODSCODE
                                             ),损坯取消 AS (
                                             SELECT
                                              scap.GOODSCODE,
-                                              COUNT(DISTINCT CASE WHEN scap.PROCEDUREID IN(10,37,41,9) THEN BARCODE ELSE NULL end) 施釉损失取消,
-                                             COUNT(DISTINCT CASE WHEN scap.PROCEDUREID IN(8)  THEN BARCODE ELSE NULL end) 精坯损失取消
+                                              COUNT(CASE WHEN scap.PROCEDUREID IN(10,37,41,9) THEN BARCODE ELSE NULL end) 施釉损失取消,
+                                             COUNT(CASE WHEN scap.PROCEDUREID IN(8)  THEN BARCODE ELSE NULL end) 精坯损失取消
                                             FROM TP_PM_SCRAPPRODUCT scap
                                             WHERE scap.BACKOUTTIME>=@DATEBEGIN@ AND scap.BACKOUTTIME<@DATEEND@ 
                                             GROUP BY  scap.GOODSCODE

+ 11 - 7
wwwroot/mes/rpt/rpt309/rpt.ashx

@@ -42,11 +42,12 @@ TP_MST_GOODS.GOODSSPECIFICATION
 转入 AS (
 SELECT 
 TP_MST_GOODS.GOODSCODE,TP_MST_GOODS.GOODSNAME,TP_MST_GOODS.GOODSSPECIFICATION,
-COUNT(DISTINCT CASE WHEN INSTR(TP_PC_GROUTINGLINE.GROUTINGLINECODE, 'A')>0 THEN BARCODE ELSE NULL END ) AS 成型A入,
-COUNT(DISTINCT CASE WHEN INSTR(TP_PC_GROUTINGLINE.GROUTINGLINECODE, 'B')>0 THEN BARCODE ELSE NULL END ) AS 成型B入,
-COUNT(DISTINCT CASE WHEN INSTR(TP_PC_GROUTINGLINE.GROUTINGLINECODE, 'C') >0 THEN BARCODE ELSE NULL END ) AS 成型C入,
-COUNT(DISTINCT CASE WHEN TP_PC_GROUTINGLINE.HIGHPRESSUREFLAG=1 THEN BARCODE ELSE NULL END ) AS 高压入,
-COUNT(DISTINCT BARCODE ) AS 转入
+COUNT( CASE WHEN INSTR(TP_PC_GROUTINGLINE.GROUTINGLINECODE, 'A')>0 THEN BARCODE ELSE NULL END ) AS 成型A入,
+COUNT( CASE WHEN INSTR(TP_PC_GROUTINGLINE.GROUTINGLINECODE, 'B')>0 THEN BARCODE ELSE NULL END ) AS 成型B入,
+COUNT( CASE WHEN INSTR(TP_PC_GROUTINGLINE.GROUTINGLINECODE, 'C') >0 THEN BARCODE ELSE NULL END ) AS 成型C入,
+COUNT( CASE WHEN TP_PC_GROUTINGLINE.HIGHPRESSUREFLAG=1 THEN BARCODE ELSE NULL END ) AS 高压入,
+COUNT( CASE WHEN TP_PC_GROUTINGLINE.GROUTINGLINECODE='00' THEN BARCODE ELSE NULL END ) AS 干补入,
+COUNT( BARCODE ) AS 转入
 FROM TP_PM_PRODUCTIONDATA
 LEFT JOIN TP_MST_GOODS ON TP_MST_GOODS.GOODSCODE =TP_PM_PRODUCTIONDATA.GOODSCODE
 LEFT JOIN TP_PC_GROUTINGLINE ON TP_PC_GROUTINGLINE.GROUTINGLINECODE=TP_PM_PRODUCTIONDATA.GROUTINGLINECODE
@@ -80,7 +81,7 @@ GROUP BY TP_MST_GOODS.GOODSCODE,TP_MST_GOODS.GOODSNAME,TP_MST_GOODS.GOODSSPECIFI
 转出 AS (
 SELECT 
 TP_MST_GOODS.GOODSCODE,TP_MST_GOODS.GOODSNAME,TP_MST_GOODS.GOODSSPECIFICATION,
-COUNT(DISTINCT BARCODE ) AS 转出
+COUNT(1) AS 转出
 FROM TP_PM_PRODUCTIONDATA
 LEFT JOIN TP_MST_GOODS ON TP_MST_GOODS.GOODSCODE=TP_PM_PRODUCTIONDATA.GOODSCODE
 LEFT JOIN TP_PC_GROUTINGLINE ON TP_PC_GROUTINGLINE.GROUTINGLINECODE=TP_PM_PRODUCTIONDATA.GROUTINGLINECODE
@@ -113,6 +114,7 @@ SUM(成型A入) 成型A入,
 SUM(成型B入) 成型B入,
 SUM(成型C入) 成型C入,
 SUM(高压入) 高压入,
+SUM(干补入) 干补入,
 SUM(转入) 转入,
 SUM(库内损坯) 库内损坯,
 SUM(库内损坯取消) 库内损坯取消,
@@ -130,6 +132,7 @@ GOODSSPECIFICATION 产品规格,
 成型B入,
 成型C入,
 高压入,
+干补入,
 转入 ,
 库内损坯,
 库内损坯取消,
@@ -147,6 +150,7 @@ sum(nvl(转入.成型A入,0)) 成型A入,
 sum(nvl(转入.成型B入,0)) 成型B入,
 sum(nvl(转入.成型C入,0)) 成型C入,
 sum(nvl(转入.高压入,0)) 高压入,
+sum(nvl(转入.干补入,0)) 干补入,
 sum(nvl(转入.转入,0)) 转入,
 sum(nvl(损坯.库内损坯,0)) 库内损坯,
 sum(nvl(损坯取消.库内损坯取消,0)) 库内损坯取消,
@@ -167,7 +171,7 @@ GROUP BY TP_MST_GOODS.GOODSCODE,TP_MST_GOODS.GOODSNAME,TP_MST_GOODS.GOODSSPECIFI
 )
 GROUP BY Grouping sets((产品编码,产品名称,产品规格),())
 )
-WHERE (期初<>0 OR 成型A入<>0 OR 成型C入<>0 OR 高压入<>0 OR 转入<>0 OR 库内损坯<>0 OR 转出<>0 OR 在产清除转出<>0 OR 在产撤销清除转入<>0  OR 期末库存<>0) ";
+WHERE (期初<>0 OR 成型A入<>0 OR 成型C入<>0 OR 高压入<>0 OR 干补入<>0 OR 转入<>0 OR 库内损坯<>0 OR 转出<>0 OR 在产清除转出<>0 OR 在产撤销清除转入<>0  OR 期末库存<>0) ";
 			}
 			//获取查询条件
 			List<CDAParameter> sqlPara = new List<CDAParameter>();