Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE TRANSACTIONS
- (
- ID VARCHAR2(10),
- AMOUNT NUMBER,
- T_DATE DATE
- );
- CREATE TABLE LOAN_TYPE
- (
- SCHEME NUMBER,
- INSTALLMENT NUMBER,
- CHARGE NUMBER,
- MIN_TRANS NUMBER
- );
- CREATE TABLE PAYMENT
- (
- NO_INS NUMBER,
- ACC_NO VARCHAR2(10),
- AMOUNT NUMBER,
- DOP DATE
- );
- INSERT INTO LOAN_TYPE VALUES(1, 30, 5, 2000000);
- INSERT INTO LOAN_TYPE VALUES(2, 20, 10, 1000000);
- INSERT INTO LOAN_TYPE VALUES(3, 15, 15, 500000);
- INSERT INTO TRANSACTIONS VALUES('100', 1000000, TO_DATE('03/05/2016', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('100', 2000000, TO_DATE('03/06/2016', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('101', 300000, TO_DATE('03/07/2016', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('101', 400000, TO_DATE('03/08/2016', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('101', 1000000, TO_DATE('03/09/2016', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('101', 5000000, TO_DATE('03/09/2013', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('102', 500000, TO_DATE('03/09/2016', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('103', 500000, TO_DATE('03/12/2016', 'dd/mm/yyyy'));
- INSERT INTO TRANSACTIONS VALUES('104', 1000020, TO_DATE('03/11/2016', 'dd/mm/yyyy'));
- CREATE OR REPLACE FUNCTION CAT_FIND(CUS_ID IN VARCHAR2)
- RETURN NUMBER
- IS
- S_TYPE NUMBER;
- TOTAL NUMBER;
- CURSOR C1 IS
- SELECT SCHEME, MIN_TRANS
- FROM LOAN_TYPE
- ORDER BY MIN_TRANS DESC;
- BEGIN
- SELECT SUM(AMOUNT) INTO TOTAL
- FROM TRANSACTIONS WHERE
- ID = CUS_ID AND
- (SELECT SYSDATE - TO_DATE(T_DATE, 'DD/MM/YYYY') FROM DUAL) < 365;
- FOR REC IN C1
- LOOP
- IF TOTAL >= REC.MIN_TRANS THEN
- RETURN REC.SCHEME;
- END IF;
- END LOOP;
- END;
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement