Skip to content

Commit a01e267

Browse files
[ADD] max_raise function
1 parent cbc55ec commit a01e267

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

classes/32-functions.sql

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,44 @@ SELECT
1919
first_name,
2020
greet_employee(first_name)
2121
FROM employees;
22+
23+
-- max_raise function
24+
SELECT *
25+
FROM employees;
26+
27+
SELECT *
28+
FROM jobs;
29+
30+
SELECT
31+
e.employee_id,
32+
e.first_name,
33+
e.salary,
34+
j.max_salary,
35+
j.max_salary - salary AS possible_raise,
36+
max_raise(e.employee_id)
37+
FROM employees AS e
38+
INNER JOIN jobs AS j ON j.job_id = e.job_id;
39+
40+
CREATE OR REPLACE FUNCTION max_raise(empl_id INT)
41+
RETURNS NUMERIC(8,2) AS $$
42+
DECLARE
43+
-- salary NUMERIC(8,2);
44+
-- max_salary NUMERIC(8,2);
45+
possible_raise NUMERIC(8,2);
46+
BEGIN
47+
SELECT j.max_salary - salary INTO possible_raise
48+
FROM employees AS e
49+
INNER JOIN jobs AS j ON j.job_id = e.job_id
50+
WHERE e.employee_id = empl_id;
51+
52+
RETURN possible_raise;
53+
END;
54+
$$ LANGUAGE plpgsql;
55+
56+
SELECT max_raise(206);
57+
58+
SELECT
59+
employee_id,
60+
first_name,
61+
max_raise(employee_id)
62+
FROM employees;

0 commit comments

Comments
 (0)