LEFT JOIN TEMP ON PLANNED_START_DATE <= AM_START_DATE_TIME AND PLANNED_COMP_DATE >= AM_START_DATE_TIME AND PLANNED_COMP_DATE <= AM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) B ON B.DATE_TIME = RDT.DATE_TIME AND B.RESRCE = RDT.RESRCE
LEFT JOIN
(SELECT DATE_TIME ,RESRCE , COUNT(*)*4 CNT FROM Z_REPORT_DATE_TIME
LEFT JOIN TEMP ON PLANNED_START_DATE <= AM_START_DATE_TIME AND PLANNED_COMP_DATE >= AM_END_DATE_TIME AND PLANNED_COMP_DATE < PM_START_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) C ON C.DATE_TIME = RDT.DATE_TIME AND C.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE <= AM_START_DATE_TIME AND PLANNED_COMP_DATE >= PM_START_DATE_TIME AND PLANNED_COMP_DATE <= PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) D ON D.DATE_TIME = RDT.DATE_TIME AND D.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_START_DATE_TIME AND PLANNED_START_DATE <= AM_END_DATE_TIME AND PLANNED_COMP_DATE >= AM_END_DATE_TIME AND PLANNED_COMP_DATE <= PM_START_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) F ON F.DATE_TIME = RDT.DATE_TIME AND F.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_START_DATE_TIME AND PLANNED_START_DATE <= AM_END_DATE_TIME AND PLANNED_COMP_DATE >= PM_START_DATE_TIME AND PLANNED_COMP_DATE < PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) G ON G.DATE_TIME = RDT.DATE_TIME AND G.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_START_DATE_TIME AND PLANNED_START_DATE <= AM_END_DATE_TIME AND PLANNED_COMP_DATE >= PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) H ON H.DATE_TIME = RDT.DATE_TIME AND H.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_END_DATE_TIME AND PLANNED_START_DATE <= PM_START_DATE_TIME AND PLANNED_COMP_DATE >= PM_START_DATE_TIME AND PLANNED_COMP_DATE < PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) I ON I.DATE_TIME = RDT.DATE_TIME AND I.RESRCE = RDT.RESRCE
LEFT JOIN
(SELECT DATE_TIME ,RESRCE , COUNT(*)*4 CNT FROM Z_REPORT_DATE_TIME
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_END_DATE_TIME AND PLANNED_START_DATE < PM_START_DATE_TIME AND PLANNED_COMP_DATE > PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) J ON J.DATE_TIME = RDT.DATE_TIME AND J.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE <= AM_START_DATE_TIME AND PLANNED_COMP_DATE >= AM_START_DATE_TIME AND PLANNED_COMP_DATE <= AM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) B ON B.DATE_TIME = RDT.DATE_TIME AND B.RESRCE = RDT.RESRCE
LEFT JOIN
(SELECT DATE_TIME ,RESRCE , COUNT(*)*4 CNT FROM Z_REPORT_DATE_TIME
LEFT JOIN TEMP ON PLANNED_START_DATE <= AM_START_DATE_TIME AND PLANNED_COMP_DATE >= AM_END_DATE_TIME AND PLANNED_COMP_DATE < PM_START_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) C ON C.DATE_TIME = RDT.DATE_TIME AND C.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE <= AM_START_DATE_TIME AND PLANNED_COMP_DATE >= PM_START_DATE_TIME AND PLANNED_COMP_DATE <= PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) D ON D.DATE_TIME = RDT.DATE_TIME AND D.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_START_DATE_TIME AND PLANNED_START_DATE <= AM_END_DATE_TIME AND PLANNED_COMP_DATE >= AM_END_DATE_TIME AND PLANNED_COMP_DATE <= PM_START_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) F ON F.DATE_TIME = RDT.DATE_TIME AND F.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_START_DATE_TIME AND PLANNED_START_DATE <= AM_END_DATE_TIME AND PLANNED_COMP_DATE >= PM_START_DATE_TIME AND PLANNED_COMP_DATE < PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) G ON G.DATE_TIME = RDT.DATE_TIME AND G.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_START_DATE_TIME AND PLANNED_START_DATE <= AM_END_DATE_TIME AND PLANNED_COMP_DATE >= PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) H ON H.DATE_TIME = RDT.DATE_TIME AND H.RESRCE = RDT.RESRCE
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_END_DATE_TIME AND PLANNED_START_DATE <= PM_START_DATE_TIME AND PLANNED_COMP_DATE >= PM_START_DATE_TIME AND PLANNED_COMP_DATE < PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) I ON I.DATE_TIME = RDT.DATE_TIME AND I.RESRCE = RDT.RESRCE
LEFT JOIN
(SELECT DATE_TIME ,RESRCE , COUNT(*)*4 CNT FROM Z_REPORT_DATE_TIME
LEFT JOIN TEMP ON PLANNED_START_DATE > AM_END_DATE_TIME AND PLANNED_START_DATE < PM_START_DATE_TIME AND PLANNED_COMP_DATE > PM_END_DATE_TIME
GROUP BY RESRCE , DATE_TIME ) J ON J.DATE_TIME = RDT.DATE_TIME AND J.RESRCE = RDT.RESRCE
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='OK' THEN 0
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='NG' THEN TO_NUMBER(zab.NC_QTY)
ELSE 0 END NG_QTY , TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') "MONTH",
CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='OK' THEN zsd.DISPATCH_QTY
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='NG' THEN 0
ELSE 0 END OK_QTY
,ZSD.DISPATCH_QTY, WT.DESCRIPTION,
ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC) seq,
zit."RESULT",COUNT(ZIT.HANDLE) check_qty, zit.sfc ,zit.OPERATION,zit.STEP_ID FROM Z_INSPECTION_TASK zit
JOIN sfc S ON S.SFC=zit.SFC AND s.SITE=zit.SITE
JOIN Z_SFC_DISPATCH ZSD ON ZSD.SFC=zit.SFC AND ZSD.SITE=zit.SITE AND zit.STEP_ID=ZSD.STEP_ID
JOIN WORK_CENTER WC ON WC.SITE = zit.SITE AND WC.WORK_CENTER = zit.WORK_CENTER
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WC.HANDLE AND WT.LOCALE = 'zh'
LEFT JOIN Z_ABNORMAL_BILL ZAB ON zit.SFC=ZAB.SFC AND zit.SITE=ZAB.SITE AND zit.STEP_ID=ZAB.STEP_ID AND zab."TYPE"='Z'
WHERE zit.SITE= #{site} AND zit.CATEGORY='P' AND zit.STATUS='COMPLETE'
<iftest="workCenter != null and workCenter != ''">
AND zit.WORK_CENTER = #{workCenter}
</if>
<iftest="startFromDate != null and startFromDate != ''">
AND TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') >=#{startFromDate}
</if>
<iftest="startToDate != null and startToDate != ''">
AND TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') <= #{startToDate}
</if>
GROUP BY zit."RESULT",zit.sfc ,zit.OPERATION,zit.STEP_ID, zit.CREATED_DATE_TIME,zit.RESRCE,zab.NC_QTY, WT.DESCRIPTION,ZSD.DISPATCH_QTY
SELECT DESCRIPTION WORK_CENTER_DESCRIPTION, FULL_NAME,"MONTH",sum(NG_QTY) NC_QTY, sum(CHECK_QTY) CHECK_QTY FROM
(
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='OK' THEN 0
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='NG' THEN TO_NUMBER(zab.NC_QTY)
ELSE 0 END NG_QTY , TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') "MONTH"
, WT.DESCRIPTION,ZNU.FULL_NAME,
ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC) seq,
zit."RESULT",COUNT(ZIT.HANDLE) check_qty, zit.sfc ,zit.OPERATION,zit.STEP_ID FROM Z_INSPECTION_TASK zit
JOIN sfc S ON S.SFC=zit.SFC AND s.SITE=zit.SITE
JOIN Z_SFC_DISPATCH ZSD ON ZSD.SFC=zit.SFC AND ZSD.SITE=zit.SITE AND zit.STEP_ID=ZSD.STEP_ID
JOIN WORK_CENTER WC ON WC.SITE = zit.SITE AND WC.WORK_CENTER = zit.WORK_CENTER
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WC.HANDLE AND WT.LOCALE = 'zh'
LEFT JOIN Z_ABNORMAL_BILL ZAB ON zit.SFC=ZAB.SFC AND zit.SITE=ZAB.SITE AND zit.STEP_ID=ZAB.STEP_ID AND zab."TYPE"='Z'
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='OK' THEN 0
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='NG' THEN TO_NUMBER(zab.NC_QTY)
ELSE 0 END NG_QTY , TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') "MONTH",
CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='OK' THEN zsd.DISPATCH_QTY
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='NG' THEN 0
GROUP BY zit."RESULT",zit.sfc ,zit.OPERATION,zit.STEP_ID, zit.CREATED_DATE_TIME,zit.RESRCE,zab.NC_QTY, WT.DESCRIPTION,ZSD.DISPATCH_QTY,E.EMPLOYEE,ZABD.DUTY_USER