|
|
@@ -276,13 +276,95 @@ SELECT
|
|
|
缺陷数量
|
|
|
FROM
|
|
|
(
|
|
|
- select df.DEFECTNAME 缺陷名称, COUNT(distinct DF.BARCODE || df.DEFECTCODE) 缺陷数量 from
|
|
|
- TP_PM_DEFECT df
|
|
|
- LEFT JOIN TP_PM_PRODUCTIONDATA PD ON PD.BARCODE=DF.BARCODE
|
|
|
- INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE=PD.BARCODE
|
|
|
- WHERE
|
|
|
- df.VALUEFLAG=1
|
|
|
- AND PD.PROCEDUREID in ( 16) AND PD.VALUEFLAG=1
|
|
|
+ select df.DEFECTNAME 缺陷名称
|
|
|
+ ,COUNT(DISTINCT CASE
|
|
|
+ WHEN (pds.procedureid IN (4, 36, 53) AND
|
|
|
+ df.defectcode IN
|
|
|
+ ('10', '12', '13', '14', '15', '16', '17', '18', '19', '22', '25', '35'))
|
|
|
+ OR (pds.procedureid IN (5, 36, 52) AND
|
|
|
+ df.defectcode IN ('01'
|
|
|
+ ,'02'
|
|
|
+ ,'03'
|
|
|
+ ,'04'
|
|
|
+ ,'05'
|
|
|
+ ,'06'
|
|
|
+ ,'07'
|
|
|
+ ,'08'
|
|
|
+ ,'09'
|
|
|
+ ,'10'
|
|
|
+ ,'28'
|
|
|
+ ,'34'
|
|
|
+ ,'35'))
|
|
|
+ OR (pds.procedureid IN (55, 13, 25) AND
|
|
|
+ df.defectcode IN ('61', '62', '63', '64', '65', '66', '67', '11'))
|
|
|
+ OR (pds.procedureid IN (30, 39, 57) AND
|
|
|
+ df.defectcode IN
|
|
|
+ ('69', '70', '71', '43', '73', '74', '75', '76', '77', '78', '79', '80')) THEN
|
|
|
+ (pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+
|
|
|
+ ELSE
|
|
|
+ (pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+ END) AS 缺陷数量
|
|
|
+ from TP_PM_DEFECT df
|
|
|
+ LEFT JOIN
|
|
|
+ (SELECT pd1.goodsname
|
|
|
+ ,pd1.groutingdailydetailid
|
|
|
+ ,pd1.goodsid
|
|
|
+ ,pd1.goodscode
|
|
|
+ ,pd1.groutinguserid
|
|
|
+ ,pd1.groutingusercode
|
|
|
+ ,pd1.createtime
|
|
|
+ ,pd1.procedureid
|
|
|
+ ,pd1.kilncarbatchno
|
|
|
+ ,pd1.barcode
|
|
|
+ ,pd1.valueflag
|
|
|
+ ,nvl(pd61.productiondataid, pd1.productiondataid) productiondataid
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT pd28.goodsname
|
|
|
+ ,pd28.groutingdailydetailid
|
|
|
+ ,pd28.goodsid
|
|
|
+ ,pd28.goodscode
|
|
|
+ ,pd28.goodsleveltypeid
|
|
|
+ ,pd28.groutinguserid
|
|
|
+ ,pd28.groutingusercode
|
|
|
+ ,pd28.createtime
|
|
|
+ ,pd24.procedureid
|
|
|
+ ,pd28.kilncarbatchno
|
|
|
+ ,pd28.barcode
|
|
|
+ ,pd28.productiondataid
|
|
|
+ ,pd28.valueflag
|
|
|
+ ,row_number() over(PARTITION BY pd28.productiondataid ORDER BY pd24.productiondataid DESC) AS rownums
|
|
|
+ FROM tp_pm_productiondata pd28 -- 重烧质量登记
|
|
|
+ INNER JOIN tp_pm_productiondata pd24 -- 重烧修补24 / 冷补42
|
|
|
+ ON pd24.groutingdailydetailid = pd28.groutingdailydetailid
|
|
|
+ WHERE pd28.procedureid = 16
|
|
|
+ AND pd28.valueflag = 1
|
|
|
+ AND pd24.valueflag = 1
|
|
|
+ AND pd24.procedureid IN (55, 13, 42) -- 重烧质量登记里包含 重烧修补24 / 冷补42
|
|
|
+ AND pd28.createtime >= TRUNC(SYSDATE)
|
|
|
+
|
|
|
+ AND pd24.productiondataid < pd28.productiondataid) t
|
|
|
+ WHERE rownums = 1
|
|
|
+ AND t.procedureid IN (55, 13)) pd1
|
|
|
+ LEFT JOIN tp_pm_productiondata pd61 -- 重烧质量检测
|
|
|
+ ON pd61.procedureid = 60
|
|
|
+ AND pd61.valueflag = 1
|
|
|
+ AND pd61.groutingdailydetailid = pd1.groutingdailydetailid
|
|
|
+ AND pd61.kilncarbatchno = pd1.kilncarbatchno
|
|
|
+ AND pd61.productiondataid > pd1.productiondataid
|
|
|
+ -- 取最近的数据
|
|
|
+ AND NOT EXISTS
|
|
|
+ (SELECT 1
|
|
|
+ FROM tp_pm_productiondata pd28c -- 重烧质量登记 重复的
|
|
|
+ WHERE pd28c.procedureid = 16
|
|
|
+ AND pd28c.valueflag = 1
|
|
|
+ AND pd28c.groutingdailydetailid = pd1.groutingdailydetailid
|
|
|
+ AND pd28c.kilncarbatchno = pd1.kilncarbatchno
|
|
|
+ AND pd28c.productiondataid > pd1.productiondataid
|
|
|
+ AND pd28c.productiondataid < pd61.productiondataid)) PD ON PD.productiondataid=DF.productiondataid
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE=PD.BARCODE AND pds.valueflag = 1
|
|
|
+ WHERE
|
|
|
+ df.VALUEFLAG=1
|
|
|
AND PD.CREATETIME >=TRUNC(SYSDATE) AND DF.PROCEDUREID NOT IN (61,28)
|
|
|
GROUP BY df.DEFECTNAME
|
|
|
ORDER BY
|
|
|
@@ -311,23 +393,105 @@ SELECT
|
|
|
)
|
|
|
WHERE 缺陷名称 not IN(
|
|
|
SELECT
|
|
|
- 缺陷名称
|
|
|
- FROM
|
|
|
- (
|
|
|
- select df.DEFECTNAME 缺陷名称, COUNT(distinct DF.BARCODE || df.DEFECTCODE) 缺陷数量 from
|
|
|
- TP_PM_DEFECT df
|
|
|
- LEFT JOIN TP_PM_PRODUCTIONDATA PD ON PD.BARCODE=DF.BARCODE
|
|
|
- INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE=PD.BARCODE
|
|
|
- WHERE
|
|
|
- df.VALUEFLAG=1
|
|
|
- AND PD.PROCEDUREID in ( 16) AND PD.VALUEFLAG=1
|
|
|
- AND PD.CREATETIME >=TRUNC(SYSDATE) AND DF.PROCEDUREID NOT IN (61,28)
|
|
|
- GROUP BY df.DEFECTNAME
|
|
|
- ORDER BY
|
|
|
- COUNT(distinct DF.BARCODE || df.DEFECTCODE) DESC
|
|
|
- )
|
|
|
- WHERE
|
|
|
- ROWNUM <= 4 )
|
|
|
+ 缺陷名称
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ select df.DEFECTNAME 缺陷名称
|
|
|
+ ,COUNT(DISTINCT CASE
|
|
|
+ WHEN (pds.procedureid IN (4, 36, 53) AND
|
|
|
+ df.defectcode IN
|
|
|
+ ('10', '12', '13', '14', '15', '16', '17', '18', '19', '22', '25', '35'))
|
|
|
+ OR (pds.procedureid IN (5, 36, 52) AND
|
|
|
+ df.defectcode IN ('01'
|
|
|
+ ,'02'
|
|
|
+ ,'03'
|
|
|
+ ,'04'
|
|
|
+ ,'05'
|
|
|
+ ,'06'
|
|
|
+ ,'07'
|
|
|
+ ,'08'
|
|
|
+ ,'09'
|
|
|
+ ,'10'
|
|
|
+ ,'28'
|
|
|
+ ,'34'
|
|
|
+ ,'35'))
|
|
|
+ OR (pds.procedureid IN (55, 13, 25) AND
|
|
|
+ df.defectcode IN ('61', '62', '63', '64', '65', '66', '67', '11'))
|
|
|
+ OR (pds.procedureid IN (30, 39, 57) AND
|
|
|
+ df.defectcode IN
|
|
|
+ ('69', '70', '71', '43', '73', '74', '75', '76', '77', '78', '79', '80')) THEN
|
|
|
+ (pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+
|
|
|
+ ELSE
|
|
|
+ (pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+ END) AS 缺陷数量
|
|
|
+ from TP_PM_DEFECT df
|
|
|
+ LEFT JOIN
|
|
|
+ (SELECT pd1.goodsname
|
|
|
+ ,pd1.groutingdailydetailid
|
|
|
+ ,pd1.goodsid
|
|
|
+ ,pd1.goodscode
|
|
|
+ ,pd1.groutinguserid
|
|
|
+ ,pd1.groutingusercode
|
|
|
+ ,pd1.createtime
|
|
|
+ ,pd1.procedureid
|
|
|
+ ,pd1.kilncarbatchno
|
|
|
+ ,pd1.barcode
|
|
|
+ ,pd1.valueflag
|
|
|
+ ,nvl(pd61.productiondataid, pd1.productiondataid) productiondataid
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT pd28.goodsname
|
|
|
+ ,pd28.groutingdailydetailid
|
|
|
+ ,pd28.goodsid
|
|
|
+ ,pd28.goodscode
|
|
|
+ ,pd28.goodsleveltypeid
|
|
|
+ ,pd28.groutinguserid
|
|
|
+ ,pd28.groutingusercode
|
|
|
+ ,pd28.createtime
|
|
|
+ ,pd24.procedureid
|
|
|
+ ,pd28.kilncarbatchno
|
|
|
+ ,pd28.barcode
|
|
|
+ ,pd28.productiondataid
|
|
|
+ ,pd28.valueflag
|
|
|
+ ,row_number() over(PARTITION BY pd28.productiondataid ORDER BY pd24.productiondataid DESC) AS rownums
|
|
|
+ FROM tp_pm_productiondata pd28 -- 重烧质量登记
|
|
|
+ INNER JOIN tp_pm_productiondata pd24 -- 重烧修补24 / 冷补42
|
|
|
+ ON pd24.groutingdailydetailid = pd28.groutingdailydetailid
|
|
|
+ WHERE pd28.procedureid = 16
|
|
|
+ AND pd28.valueflag = 1
|
|
|
+ AND pd24.valueflag = 1
|
|
|
+ AND pd24.procedureid IN (55, 13, 42) -- 重烧质量登记里包含 重烧修补24 / 冷补42
|
|
|
+ AND pd28.createtime >= TRUNC(SYSDATE)
|
|
|
+
|
|
|
+ AND pd24.productiondataid < pd28.productiondataid) t
|
|
|
+ WHERE rownums = 1
|
|
|
+ AND t.procedureid IN (55, 13)) pd1
|
|
|
+ LEFT JOIN tp_pm_productiondata pd61 -- 重烧质量检测
|
|
|
+ ON pd61.procedureid = 60
|
|
|
+ AND pd61.valueflag = 1
|
|
|
+ AND pd61.groutingdailydetailid = pd1.groutingdailydetailid
|
|
|
+ AND pd61.kilncarbatchno = pd1.kilncarbatchno
|
|
|
+ AND pd61.productiondataid > pd1.productiondataid
|
|
|
+ -- 取最近的数据
|
|
|
+ AND NOT EXISTS
|
|
|
+ (SELECT 1
|
|
|
+ FROM tp_pm_productiondata pd28c -- 重烧质量登记 重复的
|
|
|
+ WHERE pd28c.procedureid = 16
|
|
|
+ AND pd28c.valueflag = 1
|
|
|
+ AND pd28c.groutingdailydetailid = pd1.groutingdailydetailid
|
|
|
+ AND pd28c.kilncarbatchno = pd1.kilncarbatchno
|
|
|
+ AND pd28c.productiondataid > pd1.productiondataid
|
|
|
+ AND pd28c.productiondataid < pd61.productiondataid)) PD ON PD.productiondataid=DF.productiondataid
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE=PD.BARCODE AND pds.valueflag = 1
|
|
|
+ WHERE
|
|
|
+ df.VALUEFLAG=1
|
|
|
+ AND PD.CREATETIME >=TRUNC(SYSDATE) AND DF.PROCEDUREID NOT IN (61,28)
|
|
|
+ GROUP BY df.DEFECTNAME
|
|
|
+ ORDER BY
|
|
|
+ COUNT(distinct DF.BARCODE || df.DEFECTCODE) DESC
|
|
|
+ )
|
|
|
+ WHERE
|
|
|
+ ROWNUM <= 4 )
|
|
|
|
|
|
),
|
|
|
检验数
|