CREATE TABLE shanglifeecif.riskcode_statistics( id string, kindcode string DEFAULT NULL COMMENT '险种大类代码', kindNAme string DEFAULT NULL COMMENT '险种大类名称', khnum string DEFAULT NULL COMMENT '客户数量',--pwcomp ,-- '承保分公司 HEALTH_INSURANCE_LISTING.AGENTGROUPAREA 营业区HEALTH_INSURANCE_LISTING.AGENTGROUP 营业部', tatolprem string DEFAULT NULL COMMENT '总保额' ) COMMENT '险种大类统计表' STORED AS ES with shard number 10 replication 1; CREATE OR REPLACE PROCEDURE shanglifeecif.customertotaltemp() IS DECLARE BEGIN DELETE FROM shanglifeecif.customertotaltemp; insert into shanglifeecif.customertotaltemp( scustid, name, gender, birthday, idcard, idtype ) SELECT scustid , max(name) as name, max(gender) as gender , to_char(max(birthday),"yyyy-MM-dd") birthday, max(idcard) as idcard, max(idtype) AS idtype FROM ( SELECT trim(customerno) AS scustid,--投保人 trim(name) AS name, trim(sex) AS gender, trim(birthday) AS birthday, trim(idtype) AS idtype , trim(idno) AS idcard FROM dsj.policy_information WHERE customerno IS NOT NULL UNION SELECT trim(insuredno) AS scustid,--被保人 trim(insuredname) AS name, trim(insuredsex) AS gender, trim(insuredbirthday) AS birthday, trim(insuredidtype) AS idtype , trim(insuredidno) AS idcard FROM dsj.policy_information WHERE insuredno IS NOT NULL ) tmpTable GROUP BY scustid; UPDATE shanglifeecif.customertotaltemp sct SET sct.mobile = (SELECT trim(t.MOBILE) FROM dsj.t_customer_class t WHERE sct.scustid=t.customer_id); EXCEPTION WHEN HIVE_EXCEPTION THEN INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate()); WHEN Others THEN INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate()); END ; CREATE OR REPLACE PROCEDURE shanglifeecif.customer_risk_temp() IS DECLARE BEGIN DELETE FROM shanglifeecif.customer_risk_temp; INSERT INTO shanglifeecif.customer_risk_temp( id, scustid, name, gender, idcard, birthday, policyno, productname, riskcategoriesname, risk ) SELECT row_number()over(), si.scustid, si.name, CASE si.gender WHEN '0' THEN '男' WHEN '1' THEN '女' END AS gender, si.idcard, to_char(si.birthday,"yyyy-MM-dd") birthday, sit.policyno, sit.productname, sit.risk_categories_name, sit.Risk FROM shanglifeecif.individual si LEFT JOIN shanglifeecif.insurancearrangement sit ON si.scustid = sit.applicantscustid; EXCEPTION WHEN HIVE_EXCEPTION THEN INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate()); WHEN Others THEN INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate()); END ; / CREATE OR REPLACE PROCEDURE shanglifeecif.riskcode_statistics() IS DECLARE BEGIN DELETE FROM shanglifeecif.riskcode_statistics; insert into shanglifeecif.riskcode_statistics ( id, kindName, khnum, tatolprem ) --险种大类统计 SELECT row_number()over(), temp.kindName, temp.khnum, temp.tatolprem FROM ( SELECT crt.riskcategoriesname AS kindName, count(DISTINCT scustid) AS khnum, sum(risk) AS tatolprem FROM shanglifeecif.customer_risk_temp crt WHERE crt.riskcategoriesname IS NOT null GROUP BY crt.riskcategoriesname ) temp; 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 ; /* CREATE OR REPLACE PROCEDURE shanglifeecif.riskcode_statistics() IS DECLARE BEGIN DELETE FROM shanglifeecif.riskcode_statistics; insert into shanglifeecif.riskcode_statistics ( id, kindName, khnum, tatolprem ) --险种大类统计 SELECT row_number()over(), temp.kindName, temp.khnum, temp.tatolprem FROM ( select a.risk_categories_name AS kindName , count(*) AS khnum, nvl(sum(a.prem),0) AS tatolprem FROM shanglifeecif.insurancearrangement a GROUP BY a.risk_categories_name ) temp; insert into shanglifeecif.riskcode_statistics ( id, kindcode, kindNAme, khnum, tatolprem ) --险种大类统计 SELECT row_number()over(),temp.kindcode,temp.kindname,temp.khnum,temp.totalPrem FROM ( SELECT sl.kindcode, (CASE sl.kindcode WHEN 'A' THEN '意外伤害险' WHEN 'U' THEN '万能保险' WHEN 'R' THEN '年金保险' WHEN 'S' THEN '重疾保险' WHEN 'L' THEN '人寿保险' WHEN 'H' THEN '健康险' END) AS kindname, count(spi.idno) AS khnum,nvl(sum(spi.prem),0) AS totalPrem FROM lmriskapp sl LEFT JOIN policy_information spi ON spi.riskcode = sl.riskcode GROUP BY sl.kindcode ) temp; 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 ; */