TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') THEN --最大时间
CEIL((TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') - --最大时间
T5.PLAN_TIME_B) * 24 * 60) /
(CASE WHEN TO_NUMBER(T5.PLAN_USETIME)=0 THEN CEIL((T5.PLAN_TIME_E - T5.PLAN_TIME_B) * 24 * 60) ELSE TO_NUMBER(T5.PLAN_USETIME) END) * T5.WEIGTH_S
ELSE
T5.WEIGTH_S
END) WEIGTH_S,
T5.PLAN_TIME_B,
T5.PLAN_TIME_E,
T5.EXE_STATUS,
T5.PLINE_CODE
FROM PLN_ORDER_JGX_S T5
WHERE T5.PLAN_TIME_E >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') --最小时间
AND T5.PLAN_TIME_B <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')) T3 --最大时间
GROUP BY T3.PLINE_CODE) Q1,
(SELECT NVL(SUM(T3.WEIGTH_S), 0) WEIGTH_S,
SUM(CASE
WHEN T3.EXE_STATUS = '0' THEN
T3.WEIGTH_S
WHEN T3.EXE_STATUS = '1' THEN
T3.WEIGTH_S
ELSE
0
END) PLAN_WGT,
(CASE
WHEN (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') -
MAX(T3.PLAN_TIME_E)) < 0 THEN
0
ELSE
(TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') - MAX(T3.PLAN_TIME_E))
END) DIFFER_TIME,
T3.PLINE_CODE
FROM (SELECT (CASE
WHEN T5.PLAN_TIME_B <
TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') THEN --最小时间
CEIL((T5.PLAN_TIME_E -
TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60) / --最小时间
(CASE WHEN TO_NUMBER(T5.PLAN_USETIME)=0 THEN CEIL((T5.PLAN_TIME_E - T5.PLAN_TIME_B) * 24 * 60) ELSE TO_NUMBER(T5.PLAN_USETIME) END) * T5.WEIGTH_S
WHEN T5.PLAN_TIME_E >
TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') THEN --最大时间
CEIL((TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') - --最大时间
T5.PLAN_TIME_B) * 24 * 60) /
(CASE WHEN TO_NUMBER(T5.PLAN_USETIME)=0 THEN CEIL((T5.PLAN_TIME_E - T5.PLAN_TIME_B) * 24 * 60) ELSE TO_NUMBER(T5.PLAN_USETIME) END) * T5.WEIGTH_S
ELSE
T5.WEIGTH_S
END) WEIGTH_S,
T5.PLAN_TIME_B,
T5.PLAN_TIME_E,
T5.EXE_STATUS,
T5.PLINE_CODE
FROM PLN_ORDER_JGX_S T5
WHERE T5.PLAN_TIME_E >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') --最小时间
AND T5.PLAN_TIME_B <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')) T3
GROUP BY T3.PLINE_CODE) Q2,
(SELECT NVL(SUM(T3.WEIGTH_S), 0) WEIGTH_S,
SUM(CASE
WHEN T3.EXE_STATUS = '0' THEN
T3.WEIGTH_S
WHEN T3.EXE_STATUS = '1' THEN
T3.WEIGTH_S
ELSE
0
END) PLAN_WGT,
(CASE
WHEN (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') -
MAX(T3.PLAN_TIME_E)) < 0 THEN
0
ELSE
(TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') - MAX(T3.PLAN_TIME_E))
END) DIFFER_TIME,
T3.PLINE_CODE
FROM (SELECT (CASE
WHEN T5.PLAN_TIME_B <
TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') THEN --最小时间
CEIL((T5.PLAN_TIME_E -
TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60) / --最小时间
(CASE WHEN TO_NUMBER(T5.PLAN_USETIME)=0 THEN CEIL((T5.PLAN_TIME_E - T5.PLAN_TIME_B) * 24 * 60) ELSE TO_NUMBER(T5.PLAN_USETIME) END) * T5.WEIGTH_S
WHEN T5.PLAN_TIME_E >
TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') THEN --最大时间
CEIL((TO_DATE(?, 'yyyy-mm-dd hh24-mi-ss') - --最大时间
T5.PLAN_TIME_B) * 24 * 60) /
(CASE WHEN TO_NUMBER(T5.PLAN_USETIME)=0 THEN CEIL((T5.PLAN_TIME_E - T5.PLAN_TIME_B) * 24 * 60) ELSE TO_NUMBER(T5.PLAN_USETIME) END) * T5.WEIGTH_S
ELSE
T5.WEIGTH_S
END) WEIGTH_S,
T5.PLAN_TIME_B,
T5.PLAN_TIME_E,
T5.EXE_STATUS,
T5.PLINE_CODE
FROM PLN_ORDER_JGX_S T5
WHERE T5.PLAN_TIME_E >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') --最小时间
AND T5.PLAN_TIME_B <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')) T3
GROUP BY T3.PLINE_CODE) Q3,
(SELECT T1.BASECODE,
T1.BASENAME,
T2.PLINE_CODE,
T2.PLINE_NAME,
T2.DEPARTMENT_CODE
FROM COM_BASE_PLINE T2,
(SELECT T.BASECODE, T.BASENAME
FROM COM_BASE_INFO T
WHERE T.SORTCODE = '2004') T1
WHERE T2.GROUP_PLAN = T1.BASECODE
ORDER BY T1.BASECODE, T2.PLINE_CODE) Q4,
(SELECT T5.PLAN_TIME_E,
T5.PLAN_TIME_B,
NVL(T5.REPAIR_TYPE, '合同') REPAIR_TYPE,
T5.PLINE_CODE
FROM PLN_ORDER_JGX_S T5
WHERE T5.EXE_STATUS = '1') Q5
WHERE Q4.PLINE_CODE = Q1.PLINE_CODE(+)
AND Q4.PLINE_CODE = Q2.PLINE_CODE(+)
AND Q4.PLINE_CODE = Q3.PLINE_CODE(+)
AND Q4.PLINE_CODE = Q5.PLINE_CODE(+)
]]>