合格率算法调整

This commit is contained in:
xy
2024-06-20 10:22:43 +08:00
parent 1ca5ce855b
commit cb6a8f8e91
3 changed files with 35 additions and 54 deletions

View File

@@ -412,32 +412,35 @@
LEFT JOIN
(
SELECT
MYINDEX line_index,
ROUND((SUM(ALLTIME * TInterval) - SUM(UBalance_OverTime * TInterval) ) / SUM(ALLTIME * TInterval), 4 ) * 100 uBalance,
ROUND(
(
CASE
WHEN SUM(I_NEG_OVERTIME * TInterval) IS NULL THEN
1 ELSE ( SUM(ALLTIME * TInterval) - SUM(I_NEG_OVERTIME * TInterval) ) / SUM(ALLTIME * TInterval)
END
),
4
) * 100 iNeg
B.MYINDEX,
CASE WHEN SUM(B.allTime) = 0 THEN 0 else ROUND((SUM(B.allTime) - SUM(B.UBALANCE)) / SUM(B.allTime), 4) * 100 end uBalance,
CASE WHEN SUM(B.allTime) = 0 THEN 0 else ROUND((SUM(B.allTime) - SUM(B.iNeg))/ SUM(B.allTime), 4) * 100 end iNeg
FROM
LIMIT_RATE
LEFT JOIN
PQ_LINEDETAIL ON MYINDEX = LINE_INDEX
WHERE
timeid between #{startTime} and #{endTime}
and myindex in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
AND PHASIC_TYPE IN ('A', 'B', 'C')
GROUP BY MYINDEX
(
SELECT
lr.MYINDEX,
lr.TIMEID,
MAX(lr.allTime * pl.TINTERVAL) allTime,
MAX(lr.UBALANCE_OVERTIME * pl.TINTERVAL) UBALANCE,
MAX(lr.I_NEG_OVERTIME * pl.TINTERVAL) iNeg
FROM
LIMIT_RATE lr
LEFT JOIN
PQ_LINEDETAIL pl ON
lr.MYINDEX = pl.LINE_INDEX
WHERE
timeid between #{startTime} and #{endTime}
and myindex in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and lr.PHASIC_TYPE IN ('A', 'B', 'C')
GROUP BY lr.MYINDEX, lr.TIMEID
) B
GROUP BY B.MYINDEX
)B
ON
A.line_index = B.line_index
ON A.line_index = B.MYINDEX
) T1,
PQ_LINE T2,
PQ_DEVICE T3,
@@ -581,7 +584,6 @@
left join
(
SELECT
SUM(B.tAllTime) tAllTime,
SUM(B.UBALANCE) UBALANCE,
DECODE( SUM(B.iNeg), NULL, 0, SUM(B.iNeg) ) iNeg
FROM
@@ -589,9 +591,8 @@
SELECT
lr.MYINDEX,
lr.TIMEID,
SUM(lr.ALLTIME * pl.TINTERVAL) tAllTime,
SUM(lr.UBALANCE_OVERTIME * pl.TINTERVAL) UBALANCE,
SUM(lr.I_NEG_OVERTIME * pl.TINTERVAL) iNeg
MAX(lr.UBALANCE_OVERTIME * pl.TINTERVAL) UBALANCE,
MAX(lr.I_NEG_OVERTIME * pl.TINTERVAL) iNeg
FROM
LIMIT_RATE lr
LEFT JOIN