|
@@ -0,0 +1,649 @@
|
|
|
+CREATE OR REPLACE PROCEDURE shanglifeecif.updateIndividualLable() IS
|
|
|
+DECLARE
|
|
|
+BEGIN
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label1 = si1.Education where si1.Education is not null;
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label2 = si1.Occupation where si1.Occupation is not null;
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label3 = substr(si1.birthday,3,1) || '0后' where 1 = 1;
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label4 = (SELECT CASE WHEN temp.age>=0 AND temp.age<13 THEN '儿童' WHEN temp.age>=13 AND temp.age <19 THEN '少年' WHEN temp.age >=19 AND temp.age <41 THEN '青年' WHEN temp.age >=41 AND temp.age <66 THEN '中年' ELSE '老年' END FROM (SELECT TRUNC(months_between(sysdate, si2.birthday)/12) age,si2.indid FROM shanglifeecif.Individual si2) temp WHERE temp.indid = si1.indid);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label9 = si1.maritalStat WHERE 1 = 1;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.individual si1 SET si1.cochild = (
|
|
|
+ SELECT nvl(t.cnum,0) FROM (
|
|
|
+ SELECT si.indid1,count(*) AS cnum FROM shanglifeecif.IndRelationShip si
|
|
|
+ WHERE si.rstype = '子女' GROUP BY si.indid1
|
|
|
+ ) t WHERE t.indid1 = si1.indid
|
|
|
+ ) ;
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label10 = (
|
|
|
+ case
|
|
|
+ when si1.COChild=0 then '无子女'
|
|
|
+ when si1.COChild=1 then '1孩'
|
|
|
+ when si1.COChild>=2 then '2孩及以上'
|
|
|
+ else null END
|
|
|
+ ) WHERE si1.cochild is not null;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label21 = (
|
|
|
+ CASE
|
|
|
+ WHEN si1.pincome >=0 AND si1.pincome<=12 THEN '低收入'
|
|
|
+ WHEN si1.pincome >12 AND si1.pincome<=100 THEN '中产'
|
|
|
+ WHEN si1.pincome > 100 THEN '富人'
|
|
|
+ else null END
|
|
|
+ ) where 1 = 1;
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label22 = (
|
|
|
+ CASE
|
|
|
+ WHEN si1.COVehicle ==0 THEN '无车'
|
|
|
+ WHEN si1.COVehicle == 1 THEN '1辆车'
|
|
|
+ WHEN si1.COVehicle > 1 THEN '2辆车以上'
|
|
|
+ ELSE NULL END
|
|
|
+ ) where 1 = 1;
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label23 = (
|
|
|
+ CASE
|
|
|
+ WHEN si1.CORP ==0 THEN '无房'
|
|
|
+ WHEN si1.CORP == 1 THEN '1套房'
|
|
|
+ WHEN si1.CORP > 1 THEN '2套房以上'
|
|
|
+ else null END
|
|
|
+ ) where 1 = 1;
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label24 = '持有寿险有效保单' WHERE si1.scustid in
|
|
|
+ (SELECT p.customerno FROM policy_information p,lmriskapp l WHERE p.riskcode = l.riskcode AND p.appflag = '有效' AND l.kindcode = 'L');
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.NOVPolicy = (SELECT nvl(t.cnum,0) FROM (
|
|
|
+ SELECT temp.customerno,count(*) AS cnum FROM (
|
|
|
+ SELECT max(p.customerno) customerno,p.contno FROM policy_information p WHERE p.appflag = '有效' GROUP BY p.contno
|
|
|
+ ) temp GROUP BY temp.customerno
|
|
|
+ ) t WHERE t.customerno = si1.scustid);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.noivpolicy = (SELECT nvl(t.cnum,0) FROM (
|
|
|
+ SELECT temp.customerno,count(*) AS cnum FROM (
|
|
|
+ SELECT max(p.customerno) customerno,p.contno FROM policy_information p WHERE p.appflag <> '有效' GROUP BY p.contno
|
|
|
+ ) temp GROUP BY temp.customerno
|
|
|
+ ) t WHERE t.customerno = si1.scustid);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label25 = (
|
|
|
+ CASE
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 0 THEN '无保单'
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 1 THEN '1件保单'
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 2 THEN '2件保单'
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 3 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 5 THEN '3-5件保单'
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 6 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 10 THEN '6-10件保单'
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 11 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0))<= 20 THEN '11-20件保单'
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 21 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 50 THEN '21-50件保单'
|
|
|
+ WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) > 50 THEN '50件保单以上'
|
|
|
+ END
|
|
|
+ ) where 1 = 1;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN temp.cnt >0 THEN
|
|
|
+ '有极短意外险'
|
|
|
+ END
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ count(1) cnt,
|
|
|
+ policy.customerno
|
|
|
+ FROM
|
|
|
+ policy_information policy
|
|
|
+ where
|
|
|
+ policy.SECURITY in('7天','15天','30天','90天','1月','3月')
|
|
|
+ and
|
|
|
+ policy.riskperiod='短期险'
|
|
|
+ and
|
|
|
+ policy.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ policy.customerno
|
|
|
+ ) temp
|
|
|
+ WHERE temp.customerno = si1.scustid
|
|
|
+ );*/
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label27 = (
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN temp.cnt > 0 AND temp.cnt = temp.tnum THEN '仅极短意外险'
|
|
|
+ WHEN temp.cnt > 0 AND temp.cnt <> temp.tnum THEN '有极短意外险'
|
|
|
+ END
|
|
|
+ FROM (
|
|
|
+ SELECT p.customerno,max(cnt) cnt,nvl(count(*),0) tnum FROM (
|
|
|
+ SELECT
|
|
|
+ count(1) cnt,
|
|
|
+ policy.customerno
|
|
|
+ FROM
|
|
|
+ policy_information policy
|
|
|
+ where
|
|
|
+ policy.SECURITY in('7天','15天','30天','90天','1月','3月')
|
|
|
+ and
|
|
|
+ policy.riskperiod='短期险'
|
|
|
+ and
|
|
|
+ policy.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
|
|
|
+ GROUP BY
|
|
|
+ policy.customerno
|
|
|
+ ) t LEFT JOIN policy_information p ON t.customerno = p.customerno GROUP BY p.customerno
|
|
|
+ ) temp where temp.customerno = si1.scustid
|
|
|
+
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label29 = '有趸交保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.payintv = '趸缴' AND p.contno IN (SELECT l.contno FROM PREMIUM_LIST l WHERE l.PAYMENT_PERIOD LIKE '%一次交清 %')
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label30 = (
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN tt.bnum = 0 THEN '本人未投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为本人投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为本人投保'
|
|
|
+ END
|
|
|
+
|
|
|
+ FROM (
|
|
|
+ SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
|
|
|
+ SELECT count(*) AS bnum,p.customerno FROM policy_information p WHERE p.relationtoappnt = '本人' GROUP BY p.customerno
|
|
|
+ ) t LEFT JOIN policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
|
|
|
+ ) tt WHERE tt.customerno = si1.scustid
|
|
|
+
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label31 = (
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN tt.bnum = 0 THEN '父母未投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为父母投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为父母投保'
|
|
|
+ END
|
|
|
+
|
|
|
+ FROM (
|
|
|
+ SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
|
|
|
+ SELECT count(*) AS bnum,p.customerno FROM policy_information p WHERE (p.RELATIONTOAPPNT = '子女' OR p.RELATIONTOAPPNT = '父母') AND p.birthday > p.insuredbirthday
|
|
|
+ GROUP BY p.customerno
|
|
|
+ ) t LEFT JOIN policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
|
|
|
+ ) tt WHERE tt.customerno = si1.scustid
|
|
|
+
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label32 = (
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN tt.bnum = 0 THEN '子女未投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为子女投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为子女投保'
|
|
|
+ END
|
|
|
+
|
|
|
+ FROM (
|
|
|
+ SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
|
|
|
+ SELECT nvl(count(*),0) AS bnum,p.customerno FROM policy_information p WHERE (p.RELATIONTOAPPNT = '子女' OR p.RELATIONTOAPPNT = '父母') AND p.birthday < p.insuredbirthday GROUP BY p.customerno
|
|
|
+ ) t LEFT JOIN policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
|
|
|
+ ) tt WHERE tt.customerno = si1.scustid
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label33 = (
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN tt.bnum = 0 THEN '配偶未投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为配偶投保'
|
|
|
+ WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为配偶投保'
|
|
|
+ END
|
|
|
+
|
|
|
+ FROM (
|
|
|
+ SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
|
|
|
+ SELECT count(*) AS bnum,p.customerno FROM policy_information p WHERE p.relationtoappnt = '配偶' GROUP BY p.customerno
|
|
|
+ ) t LEFT JOIN policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
|
|
|
+ ) tt WHERE tt.customerno = si1.scustid
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN temp.cnt >0 THEN
|
|
|
+ '有1年期短险保单'
|
|
|
+ END
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ count(1) cnt,
|
|
|
+ policy.customerno
|
|
|
+ FROM
|
|
|
+ policy_information policy
|
|
|
+ where
|
|
|
+ policy.SECURITY in('1年','6月','180天')
|
|
|
+ and
|
|
|
+ policy.riskperiod='短期险'
|
|
|
+ and
|
|
|
+ policy.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ policy.customerno
|
|
|
+ ) temp
|
|
|
+ WHERE
|
|
|
+ temp.customerno = si1.scustid
|
|
|
+ );*/
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label43 = (
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN temp.cnt > 0 AND temp.cnt = temp.tnum THEN '仅有1年期短险保单'
|
|
|
+ WHEN temp.cnt > 0 AND temp.cnt <> temp.tnum THEN '有1年期短险保单'
|
|
|
+ END
|
|
|
+ FROM (
|
|
|
+ SELECT p.customerno,max(cnt) cnt,nvl(count(*),0) tnum FROM (
|
|
|
+ SELECT
|
|
|
+ count(1) cnt,
|
|
|
+ policy.customerno
|
|
|
+ FROM
|
|
|
+ policy_information policy
|
|
|
+ where
|
|
|
+ policy.SECURITY in('1年','6月','180天')
|
|
|
+ and
|
|
|
+ policy.riskperiod='短期险'
|
|
|
+ and
|
|
|
+ policy.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
|
|
|
+ GROUP BY
|
|
|
+ policy.customerno
|
|
|
+ ) t LEFT JOIN policy_information p ON t.customerno = p.customerno GROUP BY p.customerno
|
|
|
+ ) temp where temp.customerno = si1.scustid
|
|
|
+
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label44 = '有失效保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (select contno from lccontstate where statetype = 'Available' and state = '1')
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label45 = '有缴费期满长险保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ select contno from lcpol where payintv > 0 and paytodate = payenddate and months_between(cvalidate, enddate) > 12
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label46 = '有续期缴费保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ select otherno from ljspay where othernotype = '2'
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label47 = '有责任期满的保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ select contno from lcpol where enddate < SYSDATE
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.FADate = (
|
|
|
+ SELECT fadate FROM (
|
|
|
+ SELECT p.customerno,min(p.polapplydate) AS fadate FROM POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.customerno
|
|
|
+ ) t WHERE t.customerno = si1.scustid
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label48 = '首次投保日期' || to_char(si1.fadate, 'yyyy-MM-dd') WHERE si1.fadate IS NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.LAPPDate = (
|
|
|
+ SELECT fadate FROM (
|
|
|
+ SELECT p.customerno,max(p.polapplydate) AS fadate FROM POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.customerno
|
|
|
+ ) t WHERE t.customerno = si1.scustid
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label49 = '最后一次投保距今' || DATEDIFF(sysdate(), si1.LAPPDate) || '天' WHERE si1.lappdate IS NOT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label50 = (SELECT '最近保单' || trim(t.salecomname) FROM (
|
|
|
+ SELECT p.customerno,row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate DESC) rd,p.salecomname FROM POLICY_INFORMATION p
|
|
|
+ WHERE p.salecomname IS NOT null
|
|
|
+ ) t WHERE t.rd = 1 AND t.customerno = si1.scustid);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label52 = (SELECT '首单' || trim(t.salecomname) FROM (
|
|
|
+ SELECT p.customerno,row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate asc) rd,p.salecomname FROM POLICY_INFORMATION p WHERE p.salecomname IS NOT null
|
|
|
+ ) t WHERE t.rd = 1 AND t.customerno = si1.scustid);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label54 =
|
|
|
+ (SELECT
|
|
|
+ (CASE temp.appflag
|
|
|
+ WHEN '0' THEN '最近保单状态未承保'
|
|
|
+ WHEN '1' THEN '最近保单状态承保'
|
|
|
+ WHEN '2' THEN '最近保单状态新增附加险'
|
|
|
+ WHEN '4' THEN '最近保单状态终止'
|
|
|
+ WHEN '9' THEN '最近保单状态续保'
|
|
|
+ WHEN 'B' THEN '最近保单状态未对账'
|
|
|
+ WHEN 'F' THEN '最近保单状态对账失败'
|
|
|
+ END) a
|
|
|
+ FROM (
|
|
|
+ SELECT t.appflag,p.customerno,row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate desc) rd FROM policy_information p,lccont t WHERE p.contno = t.contno
|
|
|
+ ) temp WHERE temp.rd = 1 AND si1.scustid = temp.customerno);
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label56 = '有退保保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ select contno from lpedoritem where edortype in ('CT', 'XT', 'GT') and edorstate = '0'
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label57 = (
|
|
|
+ SELECT "最近一次理赔类型" || t.ACCIDENTTYPE FROM (
|
|
|
+ SELECT row_number()OVER(PARTITION BY c.insuredno ORDER BY c.applydate desc) rd,c.insuredno,c.ACCIDENTTYPE FROM INSURANCE_CLAIM c
|
|
|
+ ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label58 = (
|
|
|
+ SELECT "最近一次出险类型" || t.RISKTYPE FROM (
|
|
|
+ SELECT row_number()OVER(PARTITION BY c.insuredno ORDER BY c.applydate desc) rd,c.insuredno,c.RISKTYPE FROM INSURANCE_CLAIM c
|
|
|
+ ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label59 = (
|
|
|
+ SELECT '最近一次理赔状态' || t.LLCLAIMSTATE FROM (
|
|
|
+ SELECT row_number()OVER(PARTITION BY c.insuredno ORDER BY c.applydate desc) rd,c.insuredno,c.LLCLAIMSTATE FROM INSURANCE_CLAIM c
|
|
|
+ ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label61 = '有满期给付保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ SELECT contno FROM lcget WHERE getdutycode IN (select getdutycode from lmdutygetalive where getdutyname in ('满期保险金','满期生存保险金'))
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label62 = '有生存金给付的保单' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ SELECT contno FROM lcget WHERE getdutycode IN (select getdutycode from lmdutygetalive where getdutyname = '生存保险金')
|
|
|
+ ) and p.appflag = '有效'
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label64 = '红利可领取的保单' WHERE si1.scustid IN
|
|
|
+ (SELECT p.customerno FROM policy_information p,lmriskapp l WHERE p.riskcode = l.riskcode AND l.bonusflag = 1);
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label65 = '一单寿险客户' WHERE si1.scustid IN (SELECT t.customerno FROM (
|
|
|
+ SELECT count(*) AS pnum,p.customerno FROM POLICY_INFORMATION p
|
|
|
+ LEFT JOIN lmriskapp b on p.riskcode = b.riskcode
|
|
|
+ WHERE b.kindcode = 'L' and p.appflag = '有效' GROUP BY p.customerno
|
|
|
+ ) t WHERE t.pnum = 1);
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label66 = '缴费期满客户' WHERE si1.scustid IN (SELECT t.customerno FROM (
|
|
|
+ SELECT count(*) AS pnum,p.customerno FROM POLICY_INFORMATION p
|
|
|
+ WHERE p.paycount = p.payendyear GROUP BY p.customerno
|
|
|
+ ) t WHERE t.pnum > 0);
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label67 = '生日与司庆日同天' where si1.birthday like '%-02-15%';
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label68 = '持有有效保单' WHERE si1.scustid IN (SELECT t.customerno FROM (
|
|
|
+ SELECT count(*) AS pnum,p.customerno FROM POLICY_INFORMATION p
|
|
|
+ WHERE p.appflag = '有效' GROUP BY p.customerno
|
|
|
+ ) t WHERE t.pnum > 0);
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label69 = (
|
|
|
+ CASE si1.CustClass
|
|
|
+ WHEN 1 THEN '钻石客户'
|
|
|
+ WHEN 2 THEN '白金客户'
|
|
|
+ WHEN 3 THEN '黄金客户'
|
|
|
+
|
|
|
+
|
|
|
+ ELSE ''
|
|
|
+ END
|
|
|
+ ) where 1 = 1;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label74 = '注册官微'
|
|
|
+ WHERE si1.idcard IN (SELECT a.certificate_no FROM account a WHERE a.account_status = 0)
|
|
|
+ OR si1.passport IN (SELECT a.certificate_no FROM account a WHERE a.account_status = 0)
|
|
|
+ OR si1.Dlicense IN (SELECT a.certificate_no FROM account a WHERE a.account_status = 0)
|
|
|
+ OR si1.othernumber IN (SELECT a.certificate_no FROM account a WHERE a.account_status = 0);
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label77 = '本人生日临近' WHERE DATEDIFF(to_char(SYSDATE,"2021-MM-dd"),to_char(si1.birthday,"2021-MM-dd"))<=5 AND
|
|
|
+ DATEDIFF(to_char(SYSDATE,"2021-MM-dd"),to_char(si1.birthday,"2021-MM-dd"))>0;
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label91 = '失效客户' WHERE si1.scustid IN (SELECT temp.customerno FROM (
|
|
|
+ SELECT count(*) AS tnum,max(t.customerno) AS customerno,max(t.pnum) AS pnum FROM (
|
|
|
+ SELECT p.customerno,count(*) AS pnum FROM policy_information p WHERE p.appflag <> '有效' GROUP BY p.customerno
|
|
|
+ ) t LEFT JOIN policy_information pi ON pi.customerno = t.customerno
|
|
|
+ GROUP BY pi.customerno
|
|
|
+ ) temp WHERE temp.tnum = temp.pnum);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label96 = '大龄' where si1.scustid IN (
|
|
|
+
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ SELECT contnos from cc_record_main
|
|
|
+ )
|
|
|
+) AND TRUNC(months_between(sysdate, si1.birthday)/12)>=50 AND TRUNC(months_between(sysdate, si1.birthday)/12)<60;
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label97 = '高龄' where si1.scustid IN (
|
|
|
+
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ SELECT contnos from cc_record_main
|
|
|
+ )
|
|
|
+) AND TRUNC(months_between(sysdate, si1.birthday)/12)>=60;
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label98 = (CASE WHEN si1.occupation like '%记者%' OR si1.occupation like '%律师%' OR si1.occupation like '%公务员%' OR si1.occupation like '%媒体%' OR si1.occupation like '%金融行业%' THEN '敏感职业' END ) WHERE 1 = 1;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label101 = (
|
|
|
+ SELECT '长通话' FROM (
|
|
|
+ SELECT
|
|
|
+ t.contnos,
|
|
|
+ row_number()OVER(PARTITION BY p.customerno) rn,
|
|
|
+ p.customerno
|
|
|
+ FROM (
|
|
|
+ SELECT (sum(lo.call_length)/count(*)) AS avgcalltime,m.contnos from cc_record_main m
|
|
|
+ LEFT JOIN ucc_rms_recorderlog lo ON m.call_id = lo.call_id
|
|
|
+ WHERE m.contnos IS NOT NULL AND lo.call_length IS NOT NULL
|
|
|
+ GROUP BY m.contnos
|
|
|
+ ) t LEFT JOIN policy_information p ON t.contnos = p.contno
|
|
|
+
|
|
|
+ WHERE t.avgcalltime>600
|
|
|
+
|
|
|
+ ) temp WHERE temp.customerno IS NOT NULL AND temp.rn = 1 AND si1.scustid = temp.customerno
|
|
|
+);
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label103 = (SELECT "要求较多" FROM (
|
|
|
+
|
|
|
+ SELECT p.customerno,row_number()OVER(PARTITION BY p.customerno) rn
|
|
|
+ FROM (
|
|
|
+ SELECT max(t.mnum) AS mnum,f.policyno,count(*) AS fnum FROM (
|
|
|
+ SELECT count(*) AS mnum,m.contnos FROM cc_record_main m WHERE m.contnos IS NOT null
|
|
|
+ GROUP BY m.contnos
|
|
|
+ ) t LEFT JOIN cc_swfflowmain f ON t.contnos = f.policyno
|
|
|
+ WHERE f.flowid LIKE 'ZX%' AND f.policyno IS NOT NULL
|
|
|
+ GROUP BY f.policyno
|
|
|
+ ) temp LEFT JOIN policy_information p ON temp.policyno = p.contno
|
|
|
+ WHERE temp.fnum = temp.mnum
|
|
|
+) tt WHERE tt.rn = 1 AND tt.customerno IS NOT NULL AND si1.scustid = tt.customerno);
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label104 = (SELECT "易投诉升级" FROM (
|
|
|
+
|
|
|
+ SELECT p.customerno,row_number()OVER(PARTITION BY p.customerno) rn
|
|
|
+ FROM (
|
|
|
+ SELECT max(t.mnum) AS mnum,f.policyno,count(*) AS fnum FROM (
|
|
|
+ SELECT count(*) AS mnum,m.contnos FROM cc_record_main m WHERE m.contnos IS NOT null
|
|
|
+ GROUP BY m.contnos
|
|
|
+ ) t LEFT JOIN cc_swfflowmain f ON t.contnos = f.policyno
|
|
|
+ LEFT JOIN cc_swf_sort r ON r.id=f.complaintProject
|
|
|
+ WHERE f.flowid LIKE 'ZX%' AND r.idname='投诉' and f.policyno IS NOT NULL
|
|
|
+ GROUP BY f.policyno
|
|
|
+ ) temp LEFT JOIN policy_information p ON temp.policyno = p.contno
|
|
|
+ WHERE temp.fnum = temp.mnum
|
|
|
+) tt WHERE tt.rn = 1 AND tt.customerno IS NOT NULL AND si1.scustid = tt.customerno);
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label105 = '高频投诉' WHERE si1.scustid in
|
|
|
+
|
|
|
+ (SELECT p.customerno FROM policy_information p WHERE p.contno IN
|
|
|
+
|
|
|
+ (SELECT temp.productno FROM (
|
|
|
+
|
|
|
+ SELECT t.productno,t.sinserttime,
|
|
|
+ (SELECT tt.inserttime FROM (SELECT cad.inserttime,row_number()OVER(PARTITION BY cad.productno ORDER BY cad.inserttime) rownum,cad.productno FROM cc_action_complaints ca,cc_action_data_complaints cad
|
|
|
+ WHERE cad.complaintsid=ca.complaintsid AND cad.productno IS NOT NULL) tt WHERE tt.productno = t.productno AND tt.rownum = t.rn+1) AS esinserttime
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ select cd.productno,row_number()OVER(PARTITION BY cd.productno ORDER BY cd.inserttime) rn,cd.inserttime AS sinserttime
|
|
|
+ from cc_action_complaints c,cc_action_data_complaints cd WHERE cd.complaintsid=c.complaintsid AND cd.productno IS NOT NULL
|
|
|
+ ) t
|
|
|
+ ) temp WHERE temp.esinserttime IS NOT NULL AND DATEDIFF(temp.esinserttime,temp.sinserttime) < 180));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label106 = (
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ CASE
|
|
|
+ WHEN tt.complaintsSource LIKE '%保监会%' THEN '重大投诉'
|
|
|
+ WHEN tt.complaintsSource LIKE '%保监局%' THEN '重大投诉'
|
|
|
+ WHEN tt.complaintsSource LIKE '%媒体转办%' THEN '重大投诉' END FROM (
|
|
|
+
|
|
|
+ SELECT pi.customerno,max(complaintsSource) AS complaintsSource FROM (
|
|
|
+
|
|
|
+ select group_concat((case c.complaintsSource
|
|
|
+ when '911' then '来电'
|
|
|
+ when '912' then '来访'
|
|
|
+ when '913' then '来函'
|
|
|
+ when '914' then '保监会转办'
|
|
|
+ when '919' then '保监局转办'
|
|
|
+ when '915' then '媒体转办'
|
|
|
+ when '916' then '同业公会'
|
|
|
+ when '917' then '其他转办'
|
|
|
+ when '918' then '呼出'
|
|
|
+ else c.complaintsSource END),',') as complaintsSource,p.contno from cc_action_complaints c,cc_action_data_complaints cd,policy_information p
|
|
|
+
|
|
|
+ where cd.complaintsid=c.complaintsid AND p.contno = cd.productno GROUP BY p.contno
|
|
|
+
|
|
|
+ ) t LEFT JOIN policy_information pi ON t.contno = pi.contno GROUP BY pi.customerno
|
|
|
+
|
|
|
+ ) tt WHERE tt.customerno = si1.scustid
|
|
|
+
|
|
|
+);
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label107 = '高金额' WHERE si1.scustid IN (SELECT p.customerno FROM policy_information p WHERE (p.salecom = '03' AND p.prem>30000 AND
|
|
|
+ p.appflag = '有效') OR (p.salecom <> '03' AND p.prem>60000 AND p.appflag = '有效'));
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label109 = '理赔报案追踪' WHERE si1.scustid IN (SELECT p.customerno FROM policy_information p WHERE p.contno IN (SELECT c.CONTNO FROM insurance_claim c WHERE c.LLCLAIMSTATE = '报案' AND DATEDIFF(sysdate(), c.RPTDATE) <30) );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label110 = '理赔处理中' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (SELECT c.contno FROM INSURANCE_CLAIM c WHERE c.llclaimstate = '受理' OR c.llclaimstate = '立案')
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label113 = '生存金未领' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ SELECT contno FROM Lcinsureacc WHERE acctype = '005' and insuaccbala>0
|
|
|
+ )
|
|
|
+);
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.label117 = '红利垫缴还款' WHERE si1.scustid IN (
|
|
|
+ SELECT p.customerno FROM policy_information p WHERE p.contno IN (
|
|
|
+ SELECT contno FROM loloandetail WHERE finfeetype = 'HL'
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+ UPDATE shanglifeecif.Individual si1 SET si1.Label120 = '重点银行' WHERE
|
|
|
+ si1.scustid IN (SELECT p.customerno FROM policy_information p WHERE p.AGENTCOM LIKE '%招商银行%');
|
|
|
+ EXCEPTION
|
|
|
+ WHEN HIVE_EXCEPTION THEN
|
|
|
+ INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
|
|
|
+ WHEN Others THEN
|
|
|
+ INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
|
|
|
+END
|
|
|
+
|
|
|
+
|
|
|
+
|