0% found this document useful (0 votes)
45 views3 pages

Expiry Date Update Script

The document contains SQL queries and scripts to restructure the expiry dates for continuous, demand, and term loans. It selects loan data into backup tables, then updates the expiry dates in the main table to the earlier of 9 months from December 2020 or the original expiry date. This extends expiry dates for loans originated before certain dates that were expiring between January and September 2020.

Uploaded by

Rashid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views3 pages

Expiry Date Update Script

The document contains SQL queries and scripts to restructure the expiry dates for continuous, demand, and term loans. It selects loan data into backup tables, then updates the expiry dates in the main table to the earlier of 9 months from December 2020 or the original expiry date. This extends expiry dates for loans originated before certain dates that were expiring between January and September 2020.

Uploaded by

Rashid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

--Query to check data first--

--for all continuous and demand loan opened before 01/01/2020


SELECT BRANCHID, ACC_NO, LOANCATEGORYCODE, DOA_OPEN, EXPR_DATE,
(CASE
WHEN TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)) > 9
THEN
ADD_MONTHS(EXPR_DATE,9)
ELSE
ADD_MONTHS(EXPR_DATE,TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)))
end) as new_expr_date
from invmstr
where acc_stat='ACTIVATED'
and PRODID not in (41,112,135)

and REPAY_MODE = 'Non-Installment'


AND substr(loancategorycode,1,2) in ('02','03',’05’)
AND DOA_OPEN < TO_DATE('01/01/2020', 'DD/MM/RRRR')
AND EXPR_DATE between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('30/09/2020',
'DD/MM/RRRR');

--for demand loans opened btn 01/01/2020 and 31/05/2020


SELECT BRANCHID, ACC_NO, LOANCATEGORYCODE, DOA_OPEN, EXPR_DATE,
(CASE
WHEN TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)) > 9
THEN
ADD_MONTHS(EXPR_DATE,9)
ELSE
ADD_MONTHS(EXPR_DATE,TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)))
end) as new_expr_date
from invmstr
where acc_stat='ACTIVATED'
and REPAY_MODE = 'Non-Installment'
AND substr(loancategorycode,1,2) in ('03')
AND DOA_OPEN between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('31/05/2020',
'DD/MM/RRRR')
AND EXPR_DATE between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('30/09/2020',
'DD/MM/RRRR');

--Please run the script after checking data from above query--
--Update script for Expiry Date--

--create a backup table first--


create table inv_exp_date_restructure as(
SELECT BRANCHID, ACC_NO, LOANCATEGORYCODE, DOA_OPEN, EXPR_DATE,
(CASE
WHEN TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)) > 9
THEN
ADD_MONTHS(EXPR_DATE,9)
ELSE
ADD_MONTHS(EXPR_DATE,TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)))
end) as new_expr_date
from invmstr
where acc_stat='ACTIVATED'
and PRODID not in (41,112,135)

and REPAY_MODE = 'Non-Installment'

AND substr(loancategorycode,1,2) in ('02','03',’05’)


AND DOA_OPEN < TO_DATE('01/01/2020', 'DD/MM/RRRR')
AND EXPR_DATE between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('30/09/2020',
'DD/MM/RRRR')
union all
SELECT branchid, acc_no, loancategorycode, DOA_OPEN, EXPR_DATE,
(CASE
WHEN TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)) > 9
THEN
ADD_MONTHS(EXPR_DATE,9)
ELSE
ADD_MONTHS(EXPR_DATE,TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)))
end) as new_expr_date
from invmstr
where acc_stat='ACTIVATED'
and REPAY_MODE = 'Non-Installment'
AND substr(loancategorycode,1,2) in ('03')
AND DOA_OPEN between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('31/05/2020',
'DD/MM/RRRR')
AND EXPR_DATE between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('30/09/2020',
'DD/MM/RRRR'));

--update expiry date--


----------------------
--1.For continuous and demand loan opened before 01/01/2020
update invmstr
set EXPR_DATE = (CASE
WHEN TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)) > 9
THEN
ADD_MONTHS(EXPR_DATE,9)
ELSE
ADD_MONTHS(EXPR_DATE,TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)))
end)

where acc_stat='ACTIVATED'
and REPAY_MODE = 'Non-Installment'
and PRODID not in (41,112,135)

AND substr(loancategorycode,1,2) in ('02','03',’05’)

AND DOA_OPEN < TO_DATE('01/01/2020', 'DD/MM/RRRR')


AND EXPR_DATE between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('30/09/2020',
'DD/MM/RRRR');

commit;
--2.For demand loans opened between 01/01/2020 and 31/05/2020
update invmstr
set EXPR_DATE = (CASE
WHEN TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)) > 9
THEN
ADD_MONTHS(EXPR_DATE,9)
ELSE
ADD_MONTHS(EXPR_DATE,TRUNC(MONTHS_BETWEEN(TO_DATE ('31/12/2020', 'DD/MM/RRRR'),
EXPR_DATE)))
end)

where acc_stat='ACTIVATED'
and REPAY_MODE = 'Non-Installment'
AND substr(loancategorycode,1,2) in ('03')
AND DOA_OPEN between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('31/05/2020',
'DD/MM/RRRR')
AND EXPR_DATE between TO_DATE('01/01/2020', 'DD/MM/RRRR') and TO_DATE('30/09/2020',
'DD/MM/RRRR');

commit;

PRODID not in (41,112,135)

You might also like