Sebastian LabActivity#4
Sebastian LabActivity#4
employee_levels
AS SELECT emp_lvl.employee_id, emp_lvl.last_name,
emp_lvl.manager_id, (SELECT
CASE
WHEN emp.manager_id IS NULL THEN 'PRESIDENT'
WHEN (emp.manager_id = 100) AND (emp.employee_id = 101 OR emp.employee_id = 10
WHEN (emp.manager_id = 101 OR emp.manager_id = 102 OR emp.manager_id = 10
AND emp.employee_id IN (108, 205, 103, 114, 120, 121, 122, 123, 124, 145, 14
ELSE 'RANK_AND_FILE'
END employee_role
FROM employees emp
WHERE emp.employee_id = emp_lvl.employee_id
)
FROM employees emp_lvl
-- Number 1
CREATE TABLE NUMBER_1 AS (
WITH direct_reports AS (
SELECT
emp_lvl.employee_id,
CASE
--President
WHEN emp_lvl.manager_id IS NULL THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
-- Associate Managers
WHEN emp_lvl.manager_id = 100 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
WHEN emp_lvl.manager_id = 101 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
WHEN emp_lvl.manager_id = 102 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
WHEN emp_lvl.manager_id = 114 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
WHEN emp_lvl.manager_id = 120 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
WHEN emp_lvl.manager_id = 121 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
WHEN emp_lvl.manager_id = 122 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
WHERE inner_emp_lvl.manager_id = emp_lvl.employee_id
)
WHEN emp_lvl.manager_id = 123 THEN
(SELECT COUNT(inner_emp_lvl.*)
FROM employee_levels inner_emp_lvl
1 OR emp.employee_id = 102) THEN 'ASSOCIATE_MANAGER'
2 OR emp.manager_id = 100)
121, 122, 123, 124, 145, 146, 147, 148, 149, 201) THEN 'SUPERVISOR'
department_name emp_full_name level count_of_direct_reports
Executive Steven King 6 14
Executive Neena Kochhar 3 5
Executive Lex De Haan 3 1
IT Alexander Hunold 2 4
IT Bruce Ernst 1 0
IT David Austin 1 0
IT Valli Pataballa 1 0
IT Diana Lorentz 1 0
Finance Nancy Greenberg 2 5
Finance Daniel Faviet 1 0
Finance John Chen 1 0
Finance Ismael Sciarra 1 0
Finance Jose Manuel Urman 1 0
Finance Luis Popp 1 0
Purchasing Den Raphaely 2 5
Purchasing Alexander Khoo 1 0
Purchasing Shelli Baida 1 0
Purchasing Sigal Tobias 1 0
Purchasing Guy Himuro 1 0
Purchasing Karen Colmenares 1 0
Shipping Matthew Weiss 2 8
Shipping Adam Fripp 2 8
Shipping Payam Kaufling 2 8
Shipping Shanta Vollman 2 8
Shipping Kevin Mourgos 2 8
Shipping Julia Nayer 1 0
Shipping Irene Mikkilineni 1 0
Shipping James Landry 1 0
Shipping Steven Markle 1 0
Shipping Laura Bissot 1 0
Shipping Mozhe Atkinson 1 0
Shipping James Marlow 1 0
Shipping TJ Olson 1 0
Shipping Jason Mallin 1 0
Shipping Michael Rogers 1 0
Shipping Ki Gee 1 0
Shipping Hazel Philtanker 1 0
Shipping Renske Ladwig 1 0
Shipping Stephen Stiles 1 0
Shipping John Seo 1 0
Shipping Joshua Patel 1 0
Shipping Trenna Rajs 1 0
Shipping Curtis Davies 1 0
Shipping Randall Matos 1 0
Shipping Peter Vargas 1 0
Sales John Russell 2 6
Sales Karen Partners 2 6
Sales Alberto Errazuriz 2 6
Sales Gerald Cambrault 2 6
Sales Eleni Zlotkey 2 6
Sales Peter Tucker 1 0
Sales David Bernstein 1 0
Sales Peter Hall 1 0
Sales Christopher Olsen 1 0
Sales Nanette Cambrault 1 0
Sales Oliver Tuvault 1 0
Sales Janette King 1 0
Sales Patrick Sully 1 0
Sales Allan McEwen 1 0
Sales Lindsey Smith 1 0
Sales Louise Doran 1 0
Sales Sarath Sewall 1 0
Sales Clara Vishney 1 0
Sales Danielle Greene 1 0
Sales Mattea Marvins 1 0
Sales David Lee 1 0
Sales Sundar Ande 1 0
Sales Amit Banda 1 0
Sales Lisa Ozer 1 0
Sales Harrison Bloom 1 0
Sales Tayler Fox 1 0
Sales William Smith 1 0
Sales Elizabeth Bates 1 0
Sales Sundita Kumar 1 0
Sales Ellen Abel 1 0
Sales Alyssa Hutton 1 0
Sales Jonathon Taylor 1 0
Sales Jack Livingston 1 0
NULL Kimberely Grant 1 0
Sales Charles Johnson 1 0
Shipping Winston Taylor 1 0
Shipping Jean Fleaur 1 0
Shipping Martha Sullivan 1 0
Shipping Girard Geoni 1 0
Shipping Nandita Sarchand 1 0
Shipping Alexis Bull 1 0
Shipping Julia Dellinger 1 0
Shipping Anthony Cabrio 1 0
Shipping Kelly Chung 1 0
Shipping Jennifer Dilly 1 0
Shipping Timothy Gates 1 0
Shipping Randall Perkins 1 0
Shipping Sarah Bell 1 0
Shipping Britney Everett 1 0
Shipping Samuel McCain 1 0
Shipping Vance Jones 1 0
Shipping Alana Walsh 1 0
Shipping Kevin Feeney 1 0
Shipping Donald OConnell 1 0
Shipping Douglas Grant 1 0
Administration Jennifer Whalen 1 0
Marketing Michael Hartstein 2 1
Marketing Pat Fay 1 0
Human Resources Susan Mavris 1 0
Public Relations Hermann Baer 1 0
Accounting Shelley Higgins 2 1
Accounting William Gietz 1 0
CREATE TABLE NUMBER_2 AS (
WITH employee_assignation AS (
SELECT emp.employee_id,
(SELECT CASE
WHEN employee_id = 128 OR
employee_id = 132 OR
employee_id = 136 OR
employee_id = 195 OR
employee_id = 199 OR
employee_id = 183 OR
employee_id = 187 OR
employee_id = 191 OR
employee_id = 194 OR
employee_id = 198 OR
employee_id = 182 OR
employee_id = 186 OR
employee_id = 135 OR
employee_id = 140 OR
employee_id = 144 OR
employee_id = 155 OR
employee_id = 161 OR
employee_id = 167 OR
employee_id = 173 OR
employee_id = 179 THEN NULL
WHEN manager_id IS NULL then NULL
ELSE manager_id
END AS move_to_manager)
FROM employees emp
)
SELECT dept.department_name,
emp.first_name || ' ' || emp.last_name "emp_full_name",
emp.manager_id "current_manager",
emp_ass.move_to_manager
FROM employees emp
LEFT OUTER JOIN departments dept ON emp.department_id = dept.department_id
LEFT OUTER JOIN employee_assignation emp_ass ON emp.employee_id = emp_ass.employee_id
)
ee_id
department_name emp_full_name current_manager move_to_manager
Executive Steven King NULL NULL
Executive Neena Kochhar 100 100
Executive Lex De Haan 100 100
IT Alexander Hunold 102 102
IT Bruce Ernst 103 103
IT David Austin 103 103
IT Valli Pataballa 103 103
IT Diana Lorentz 103 103
Finance Nancy Greenberg 101 101
Finance Daniel Faviet 108 108
Finance John Chen 108 108
Finance Ismael Sciarra 108 108
Finance Jose Manuel Urman 108 108
Finance Luis Popp 108 108
Purchasing Den Raphaely 100 100
Purchasing Alexander Khoo 114 114
Purchasing Shelli Baida 114 114
Purchasing Sigal Tobias 114 114
Purchasing Guy Himuro 114 114
Purchasing Karen Colmenares 114 114
Shipping Matthew Weiss 100 100
Shipping Adam Fripp 100 100
Shipping Payam Kaufling 100 100
Shipping Shanta Vollman 100 100
Shipping Kevin Mourgos 100 100
Shipping Julia Nayer 120 120
Shipping Irene Mikkilineni 120 120
Shipping James Landry 120 120
Shipping Steven Markle 120 NULL
Shipping Laura Bissot 121 121
Shipping Mozhe Atkinson 121 121
Shipping James Marlow 121 121
Shipping TJ Olson 121 NULL
Shipping Jason Mallin 122 122
Shipping Michael Rogers 122 122
Shipping Ki Gee 122 NULL
Shipping Hazel Philtanker 122 NULL
Shipping Renske Ladwig 123 123
Shipping Stephen Stiles 123 123
Shipping John Seo 123 123
Shipping Joshua Patel 123 NULL
Shipping Trenna Rajs 124 124
Shipping Curtis Davies 124 124
Shipping Randall Matos 124 124
Shipping Peter Vargas 124 NULL
Sales John Russell 100 100
Sales Karen Partners 100 100
Sales Alberto Errazuriz 100 100
Sales Gerald Cambrault 100 100
Sales Eleni Zlotkey 100 100
Sales Peter Tucker 145 145
Sales David Bernstein 145 145
Sales Peter Hall 145 145
Sales Christopher Olsen 145 145
Sales Nanette Cambrault 145 145
Sales Oliver Tuvault 145 NULL
Sales Janette King 146 146
Sales Patrick Sully 146 146
Sales Allan McEwen 146 146
Sales Lindsey Smith 146 146
Sales Louise Doran 146 146
Sales Sarath Sewall 146 NULL
Sales Clara Vishney 147 147
Sales Danielle Greene 147 147
Sales Mattea Marvins 147 147
Sales David Lee 147 147
Sales Sundar Ande 147 147
Sales Amit Banda 147 NULL
Sales Lisa Ozer 148 148
Sales Harrison Bloom 148 148
Sales Tayler Fox 148 148
Sales William Smith 148 148
Sales Elizabeth Bates 148 148
Sales Sundita Kumar 148 NULL
Sales Ellen Abel 149 149
Sales Alyssa Hutton 149 149
Sales Jonathon Taylor 149 149
Sales Jack Livingston 149 149
NULL Kimberely Grant 149 149
Sales Charles Johnson 149 NULL
Shipping Winston Taylor 120 120
Shipping Jean Fleaur 120 120
Shipping Martha Sullivan 120 NULL
Shipping Girard Geoni 120 NULL
Shipping Nandita Sarchand 121 121
Shipping Alexis Bull 121 121
Shipping Julia Dellinger 121 NULL
Shipping Anthony Cabrio 121 NULL
Shipping Kelly Chung 122 122
Shipping Jennifer Dilly 122 122
Shipping Timothy Gates 122 122
Shipping Randall Perkins 122 NULL
Shipping Sarah Bell 123 123
Shipping Britney Everett 123 123
Shipping Samuel McCain 123 NULL
Shipping Vance Jones 123 NULL
Shipping Alana Walsh 124 124
Shipping Kevin Feeney 124 124
Shipping Donald OConnell 124 NULL
Shipping Douglas Grant 124 NULL
Administration Jennifer Whalen 101 101
Marketing Michael Hartstein 100 100
Marketing Pat Fay 201 201
Human Resources Susan Mavris 101 101
Public Relations Hermann Baer 101 101
Accounting Shelley Higgins 101 101
Accounting William Gietz 205 205
CREATE TABLE NUMBER_3A AS (
WITH count_of_reorg_status AS (
SELECT n1.department_name,
SUM(CASE
WHEN n2.current_manager = n2.move_to_manager THEN 1
ELSE 0
END) AS count_of_retained_employees,
SUM(CASE
WHEN n2.current_manager = n2.move_to_manager AND n2.move_to_manager IS NOT NULL AND n2.m
ELSE 0
END) AS count_of_moved_employees,
SUM(CASE
WHEN n2.move_to_manager IS NULL THEN 1
ELSE 0
END) AS count_of_no_assigned_mgr
FROM number_1 n1
LEFT JOIN number_2 n2 ON n1.emp_full_name = n2.emp_full_name
GROUP BY n1.department_name
)
ned_employees, 0) AS count_of_employees
_employees, 0) AS count_of_employees
_of_no_assigned_mgr, 0) AS count_of_employees
department_name reorg_status count_of_employees
Accounting MOVED 0
Accounting NO ASSIGNED MGR 0
Accounting RETAINED 2
Administration MOVED 0
Administration NO ASSIGNED MGR 0
Administration RETAINED 1
Benefits MOVED 0
Benefits NO ASSIGNED MGR 0
Benefits RETAINED 0
Construction MOVED 0
Construction NO ASSIGNED MGR 0
Construction RETAINED 0
Contracting MOVED 0
Contracting NO ASSIGNED MGR 0
Contracting RETAINED 0
Control And Credit MOVED 0
Control And Credit NO ASSIGNED MGR 0
Control And Credit RETAINED 0
Corporate Tax MOVED 0
Corporate Tax NO ASSIGNED MGR 0
Corporate Tax RETAINED 0
Executive MOVED 0
Executive NO ASSIGNED MGR 1
Executive RETAINED 2
Finance MOVED 0
Finance NO ASSIGNED MGR 0
Finance RETAINED 6
Government Sales MOVED 0
Government Sales NO ASSIGNED MGR 0
Government Sales RETAINED 0
Human Resources MOVED 0
Human Resources NO ASSIGNED MGR 0
Human Resources RETAINED 1
IT MOVED 0
IT NO ASSIGNED MGR 0
IT RETAINED 5
IT Helpdesk MOVED 0
IT Helpdesk NO ASSIGNED MGR 0
IT Helpdesk RETAINED 0
IT Support MOVED 0
IT Support NO ASSIGNED MGR 0
IT Support RETAINED 0
Manufacturing MOVED 0
Manufacturing NO ASSIGNED MGR 0
Manufacturing RETAINED 0
Marketing MOVED 0
Marketing NO ASSIGNED MGR 0
Marketing RETAINED 2
NOC MOVED 0
NOC NO ASSIGNED MGR 0
NOC RETAINED 0
Operations MOVED 0
Operations NO ASSIGNED MGR 0
Operations RETAINED 0
Payroll MOVED 0
Payroll NO ASSIGNED MGR 0
Payroll RETAINED 0
Public Relations MOVED 0
Public Relations NO ASSIGNED MGR 0
Public Relations RETAINED 1
Purchasing MOVED 0
Purchasing NO ASSIGNED MGR 0
Purchasing RETAINED 6
Recruiting MOVED 0
Recruiting NO ASSIGNED MGR 0
Recruiting RETAINED 0
Retail Sales MOVED 0
Retail Sales NO ASSIGNED MGR 0
Retail Sales RETAINED 0
Sales MOVED 0
Sales NO ASSIGNED MGR 5
Sales RETAINED 29
Shareholder Services MOVED 0
Shareholder Services NO ASSIGNED MGR 0
Shareholder Services RETAINED 0
Shipping MOVED 0
Shipping NO ASSIGNED MGR 15
Shipping RETAINED 30
Treasury MOVED 0
Treasury NO ASSIGNED MGR 0
Treasury RETAINED 0
CREATE TABLE NUMBER_3b AS (
WITH updated_count_of_direct_reports AS (
SELECT n2.emp_full_name,(CASE
WHEN n2.emp_full_name = 'Steven King' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 100
)
WHEN n2.emp_full_name = 'Neena Kochhar' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 101
)
WHEN n2.emp_full_name = 'Lex De Haan' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 102
)
WHEN n2.emp_full_name = 'Alexander Hunold' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 103
)
WHEN n2.emp_full_name = 'Nancy Greenberg' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 120
)
WHEN n2.emp_full_name = 'Den Raphaely' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 121
)
WHEN n2.emp_full_name = 'Matthew Weiss' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 122
)
WHEN n2.emp_full_name = 'Adam Fripp' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 123
)
WHEN n2.emp_full_name = 'Payam Kaufling' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 124
)
WHEN n2.emp_full_name = 'Shanta Vollman' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 145
)
WHEN n2.emp_full_name = 'Kevin Mourgos' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 146
)
WHEN n2.emp_full_name = 'John Russell' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
WHERE n2.move_to_manager = 147
)
WHEN n2.emp_full_name = 'Karen Partners' THEN
(SELECT COUNT(n2.*)
FROM number_2 n2
manager_full_name count_of_direct_reports
Steven King 14
Neena Kochhar 5
Lex De Haan 1
Alexander Hunold 4
Nancy Greenberg 5
Den Raphaely 5
Matthew Weiss 5
Adam Fripp 5
Payam Kaufling 5
Shanta Vollman 5
Kevin Mourgos 5
John Russell 5
Karen Partners 5
Alberto Errazuriz 4
Gerald Cambrault 5
Eleni Zlotkey 1
Michael Hartstein 5
Shelley Higgins 1
UNASSIGNED 21