5,889
社区成员
发帖
与我相关
我的任务
分享
DELETE CL_O_GRP WHERE STAT = '2';
DELETE CL_O_CUST WHERE STAT = '2';
DELETE CL_O_CUST_AUX WHERE STAT = '2';
DELETE CL_S_CUST WHERE STAT = '2' AND UPD_TIME < CURRENT TIMESTAMP - 3DAY;
--去重复
DECLARE GLOBAL TEMPORARY TABLE TMP_CL_O_GRP
(
--一堆字段
)NOT LOGGED WITH REPLACE;
DECLARE GLOBAL TEMPORARY TABLE TMP_CL_O_CUST
(
--一堆字段
)NOT LOGGED WITH REPLACE;
DECLARE GLOBAL TEMPORARY TABLE TMP_CL_O_CUST_AUX
(
--一堆字段
)NOT LOGGED WITH REPLACE;
--CL_O_GRP
INSERT INTO SESSION.TMP_CL_O_GRP(
--一堆字段
)SELECT
--一堆字段
FROM (SELECT
--一堆字段
,ROW_NUMBER()OVER(PARTITION BY CUST_NO ORDER BY DESC)AS ROW
FROM)WHERE ROW = 1;
--CL_O_CUST
INSERT INTO SESSION.TMP_CL_O_CUST(
--一堆字段
)SELECT
--一堆字段
FROM (SELECT
--一堆字段
,ROW_NUMBER()OVER(PARTITION BY CUST_NO ORDER BY DESC)AS ROW
FROM)WHERE ROW = 1;
--CL_O_CUST_AUX
INSERT INTO SESSION.TMP_CL_O_CUST_AUX(
--一堆字段
)SELECT
--一堆字段
FROM (SELECT
--一堆字段
,ROW_NUMBER()OVER(PARTITION BY CUST_NO ORDER BY DESC)AS ROW
FROM)WHERE ROW = 1;
DELETE CL_O_GRP;
DELETE CL_O_CUST;
DELETE CL_O_CUST_AUX;
INSERT INTO CL_O_GRP SELECT * from SESSION.TMP_CL_O_GRP;
INSERT INTO CL_S_CUST SELECT * from SESSION.TMP_CL_O_CUST;
INSERT INTO CL_O_CUST_AUX SELECT * from SESSION.TMP_CL_O_CUST_AUX;
--给STAT赋值
UPDATE CL_O_GRP SET STAT = '0' WHERE STAT IS NULL OR STAT = '';
UPDATE CL_O_CUST SET STAT = '0' WHERE STAT IS NULL OR STAT = '';
UPDATE CL_O_CUST_AUX SET STAT = '0' WHERE STAT IS NULL OR STAT = '';
--清理当日其他渠道更新到正式表的数据
DELET CL_O_GRP WHERE UPD_TIME = (SELECT UPD_TIME FROM CL_B_CU_CUST WHERE CL_B_CU_CUST.CUST_NO = CL_O_GRP.CUST_NO);
DELET CL_O_CUST WHERE UPD_TIME = (SELECT UPD_TIME FROM CL_B_CU_CUST WHERE CL_B_CU_CUST.CUST_NO = CL_O_CUST.CUST_NO);
DELET CL_O_CUST_AUX WHERE UPD_TIME = (SELECT UPD_TIME FROM CL_B_CU_CUST WHERE CL_B_CU_CUST.CUST_NO = CL_O_CUST_AUX.CUST_NO);
--把源表状态为0的数据导入到加工表,把加工表状态为0的数据导入正式表
SELECT COUNT(1) INTO v_data_count_grp FROM CL_O_GRP WHERE STAT = '0';
SELECT COUNT(1) INTO v_data_count_cust FROM CL_O_CUST WHERE STAT = '0';
SELECT COUNT(1) INTO v_data_count_aux FROM CL_O_CUST_AUX WHERE STAT = '0';
IF(v_data_count_grp >0) THEN
INSERT INTO CL_S_CUST(
--一堆字段
)SELECT
--一堆字段
FROM CL_O_GRP WHERE NOT EXISTS(SELECT CUST_NO FROM CL_S_CUST WHERE CL_S_CUST.CUST_NO = CL_O_GRP.CUST_NO) AND STAT = '0';
UPDATE CL_S_CUST SET(
--一堆字段
) = (SELECT
--一堆字段
FROM CL_O_GRP WHERE CUST_NO IN (SELECT CUST_NO FROM CL_S_CUST) AND CL_O_GRP.CUST_NO = CL_S_CUST.CUST_NO AND STAT = '0')
WHERE CUST_NO IN (SELECT CUST_NO FROM CL_O_GRP WHERE STAT = '0');
以下一样的批量SQL语句
END IF;