etreschenkov 2025-11-05 12:29:12 +03:00
parent 7bb08ebb59
commit 6b0f8668ae

View file

@ -11,70 +11,45 @@
</resultMap>
<select id="findFlagsDebt5000" resultMap="FlagsFidDataResultMap">
SELECT rp.FID as fid,
CASE
WHEN EXISTS (SELECT 1
FROM RU_PASTDUEARREAR rp2
WHERE rp2.FID = rp.FID
AND rp2.ACC_SERIAL_NUM = rp.ACC_SERIAL_NUM
AND rp2.REPORTED_DT = rp.MAX_REP_DATE
AND rp2.AMT_PAST_DUE > 5000) THEN 1
ELSE 0
END as flag
FROM (SELECT FID,
ACC_SERIAL_NUM,
MAX(REPORTED_DT) as MAX_REP_DATE
SELECT
FID as fid,
(case when (sum(case when AMT_PAST_DUE > 5000 then 1 else 0 end) = 0) then 0 else 1 end) as flag
FROM
(select FID, AMT_PAST_DUE, rank() over (partition by FID, ACC_SERIAL_NUM order by REPORTED_DT desc) rn
FROM RU_PASTDUEARREAR
WHERE FID IN
<foreach item="fid" collection="fids" open="(" separator="," close=")">
#{fid}
</foreach>
GROUP BY FID, ACC_SERIAL_NUM) rp
GROUP BY rp.FID, rp.ACC_SERIAL_NUM, rp.MAX_REP_DATE
)
where rn=1
group by FID
WITH UR
</select>
<select id="findFlag90ByPastDueArrear" resultMap="FlagsFidDataResultMap">
SELECT rp.FID as fid,
CASE
WHEN EXISTS (SELECT 1
FROM RU_PASTDUEARREAR rp2
WHERE rp2.FID = rp.FID
AND rp2.REPORTED_DT >= #{reportedDate}
AND rp2.DAYS_PAST_DUE > 90) THEN 1
ELSE 0
END as flag
FROM (SELECT FID,
DAYS_PAST_DUE
SELECT
FID as fid,
(case when (sum(case when (REPORTED_DT >= #{reportedDate} and DAYS_PAST_DUE > 90) then 1 else 0 end) = 0) then 0 else 1 end) as flag
FROM RU_PASTDUEARREAR
WHERE FID IN
<foreach item="fid" collection="fids" open="(" separator="," close=")">
#{fid}
</foreach>
GROUP BY FID, DAYS_PAST_DUE) rp
GROUP BY rp.FID, rp.DAYS_PAST_DUE
GROUP BY FID
WITH UR
</select>
<select id="findFlag90ByRuPaymt" resultMap="FlagsFidDataResultMap">
SELECT rp.FID as fid,
CASE
WHEN EXISTS (SELECT 1
FROM RU_PAYMT rp2
WHERE rp2.FID = rp.FID
AND rp2.REPORTED_DT >= #{reportedDate}
AND rp2.DAYS_PAST_DUE > 90) THEN 1
ELSE 0
END as flag
FROM (SELECT FID,
DAYS_PAST_DUE
SELECT
FID as fid,
(case when (sum(case when (REPORTED_DT >= #{reportedDate} and DAYS_PAST_DUE > 90) then 1 else 0 end) = 0) then 0 else 1 end) as flag
FROM RU_PAYMT
WHERE FID IN
<foreach item="fid" collection="fids" open="(" separator="," close=")">
#{fid}
</foreach>
GROUP BY FID, DAYS_PAST_DUE) rp
GROUP BY rp.FID, rp.DAYS_PAST_DUE
GROUP BY FID
WITH UR
</select>
</mapper>