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

View file

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