DECLARE
YEAR NUMBER;
BEGIN
DELETE FROM HISTORY_SUM;
INSERT INTO HISTORY_SUM (YEAR)
Select DISTINCT(TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY'))) as YEAR from HISTORY
ORDER BY YEAR;
FOR x IN (Select * from HISTORY_SUM) LOOP
UPDATE HISTORY_SUM
SET JAN = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 1)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET FEB = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 2)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET MAR = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 3)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET APR = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 4)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET MAY = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 5)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET JUN = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 6)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET JUL = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 7)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET AUG = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 8)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET SEP = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 9)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET OCT = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 10)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET NOV = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 11)
WHERE YEAR = x.YEAR;
UPDATE HISTORY_SUM
SET DEC = (Select SUM(TOTAL_$) from HISTORY c
WHERE TO_NUMBER(TO_CHAR(VISIT_DATE, 'YYYY')) = YEAR AND TO_NUMBER(TO_CHAR(VISIT_DATE, 'MM')) = 12)
WHERE YEAR = x.YEAR;
END LOOP;
COMMIT;
END;
No. | Subject | Author | Date | Views |
---|---|---|---|---|
6 | DATE -> DAY CONVERT SQL | admin | 2023.05.25 | 38 |
5 | ORACLE COLLECTION | admin | 2023.05.08 | 38 |
» | Monthly SUM | admin | 2023.05.22 | 37 |
3 | INNER JOIN | admin | 2023.05.19 | 37 |
2 | TEST | admin | 2023.05.03 | 36 |
1 | YEAR EXPRESSIONS | admin | 2023.05.25 | 34 |