forked from srikanthpragada/plsql
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBONUS_CALCULATION.SQL
More file actions
28 lines (24 loc) · 787 Bytes
/
BONUS_CALCULATION.SQL
File metadata and controls
28 lines (24 loc) · 787 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- CALCULATE BONUS BASED ON JOB HISTORY AND COMMISSION
-- 40% IF JOB HISTORY IS PRESENT, 25 % IF COMMISSION IS PRESENT OTHERWISE 35%
SET SERVEROUTPUT ON
DECLARE
CURSOR EMPCUR IS
SELECT EMPLOYEE_ID, SALARY, COMMISSION_PCT, COUNT(START_DATE) JOBCOUNT
FROM EMPLOYEES LEFT OUTER JOIN JOB_HISTORY JH
USING(EMPLOYEE_ID)
GROUP BY EMPLOYEE_ID,SALARY,COMMISSION_PCT
ORDER BY 1;
V_BONUS NUMBER(5);
BEGIN
FOR EMPREC IN EMPCUR
LOOP
IF EMPREC.JOBCOUNT > 0 THEN
V_BONUS := EMPREC.SALARY * 0.40;
ELSIF EMPREC.COMMISSION_PCT IS NOT NULL THEN
V_BONUS := EMPREC.SALARY * 0.25;
ELSE
V_BONUS := EMPREC.SALARY * 0.35;
END IF;
DBMS_OUTPUT.PUT_LINE(EMPREC.EMPLOYEE_ID || ' - ' || V_BONUS);
END LOOP;
END;