diff --git a/src/main/resources/mybatis/mapper/indic/FlagsMapper.xml b/src/main/resources/mybatis/mapper/indic/FlagsMapper.xml
index 24572db..78a2193 100644
--- a/src/main/resources/mybatis/mapper/indic/FlagsMapper.xml
+++ b/src/main/resources/mybatis/mapper/indic/FlagsMapper.xml
@@ -11,70 +11,45 @@
- 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
- FROM RU_PASTDUEARREAR
- WHERE FID IN
+ 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
#{fid}
- 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 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
- FROM RU_PASTDUEARREAR
- WHERE FID IN
-
- #{fid}
-
- GROUP BY FID, DAYS_PAST_DUE) rp
- GROUP BY rp.FID, rp.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
+
+ #{fid}
+
+ GROUP BY FID
WITH UR
- 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
- FROM RU_PAYMT
- WHERE FID IN
-
- #{fid}
-
- GROUP BY FID, DAYS_PAST_DUE) rp
- GROUP BY rp.FID, rp.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
+
+ #{fid}
+
+ GROUP BY FID
WITH UR
\ No newline at end of file