programming/작업일지
2021.11.30 ㅈㅂㅇ
워아인이
2021. 11. 30. 14:59
2021.11.30 해지 고객 처리
1. Entry의 해지 회선수 >= 등록된 총 회선수 (UseFlag == 'Y')
SELECT D.CompId, D.총회선수, C.해지해제회선
FROM (SELECT D.CompId, COUNT(D.EntryId) AS '총회선수'
FROM BP_PRODENTRY D
WHERE D.UseFlag = 'Y'
GROUP BY D.CompId
) D
LEFT JOIN
(SELECT C.CompId, COUNT(Case When C.ProgState = 4 then 1 When C.ProgState = 5 then 1 end) as '해지해제회선'
FROM BP_PRODENTRY C
WHERE C.UseFlag = 'Y'
GROUP BY C.CompId
) C
ON D.CompId = C.CompId
WHERE C.해지해제회선 >= D.총회선수
GROUP BY D.CompId
2. 해당 CompId의 BP_COMPANY일부 칼럼 Update 처리
7730건 01:15 소요
UPDATE BP_COMPANY
SET
ModReason = 'D.'
WHERE CompId IN (SELECT CONCAT(bp_comp.CompId, ',') FROM
(SELECT A.CompId
FROM BP_COMPANY A
RIGHT JOIN(
SELECT D.CompId
FROM (SELECT D.CompId, COUNT(D.EntryId) AS '총회선수'
FROM BP_PRODENTRY D
WHERE D.UseFlag = 'Y'
GROUP BY D.CompId
) D
LEFT JOIN
(SELECT C.CompId, COUNT(Case When C.ProgState = 4 then 1 When C.ProgState = 5 then 1 end) as '해지해제회선'
FROM BP_PRODENTRY C
WHERE C.UseFlag = 'Y'
GROUP BY C.CompId
) C
ON D.CompId = C.CompId
WHERE C.해지해제회선 >= D.총회선수
GROUP BY D.CompId
) B
ON A.CompId = B.CompId
) bp_comp
)
3. entry 정보 delete
25042건 04:39 소요
DELETE
FROM BP_PRODENTRY
WHERE CompId IN (
SELECT CONCAT(bp_CountEntry.CompId, ',')
FROM
(
SELECT D.CompId, D.총회선수, C.해지해제회선
FROM (SELECT D.CompId, COUNT(D.EntryId) AS '총회선수'
FROM BP_PRODENTRY D
WHERE D.UseFlag = 'Y'
GROUP BY D.CompId
) D
LEFT JOIN
(SELECT C.CompId, COUNT(Case When C.ProgState = 4 then 1 When C.ProgState = 5 then 1 end) as '해지해제회선'
FROM BP_PRODENTRY C
WHERE C.UseFlag = 'Y'
GROUP BY C.CompId
) C
ON D.CompId = C.CompId
WHERE C.해지해제회선 >= D.총회선수
GROUP BY D.CompId
) bp_CountEntry
)