-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjoin_exercises.sql
More file actions
67 lines (59 loc) · 1.86 KB
/
join_exercises.sql
File metadata and controls
67 lines (59 loc) · 1.86 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
USE employees;
# write a query that shows each department along with the name of the current manager for that department.
SELECT CONCAT (e.first_name, ' ', e.last_name) AS 'Dept Manager', d.dept_name AS 'Dept Name'
FROM employees as e
JOIN dept_manager as dm
ON dm.emp_no = e.emp_no
JOIN departments as d
ON d.dept_no = dm.dept_no
WHERE dm.to_date > CURDATE()
ORDER BY d.dept_name;
SELECT CONCAT (e.first_name, ' ', e.last_name) AS dept_manager, d.dept_name AS 'Dept Name'
FROM employees as e
JOIN dept_manager as dm
ON dm.emp_no = e.emp_no
JOIN departments as d
ON d.dept_no = dm.dept_no
WHERE dm.to_date > CURDATE()
AND e.gender = 'F'
ORDER BY d.dept_name;
SELECT title, COUNT(title)
FROM employees AS e
JOIN dept_emp AS de
ON de.emp_no = e.emp_no
JOIN titles AS t
ON t.emp_no = e.emp_no
WHERE t.to_date > CURDATE()
AND de.to_date > CURDATE()
AND dept_no = 'd009'
GROUP BY title;
# Other Solution #3
SELECT t.title, COUNT(t.emp_no)
FROM titles AS t
JOIN dept_emp AS de ON t.emp_no = de.emp_no
JOIN departments AS d ON de.dept_no = d.dept_no
WHERE t.to_date > CURDATE()
AND d.dept_name = 'Customer Service'
AND de.to_date > CURDATE()
GROUP BY t.title;
SELECT CONCAT (e.first_name, ' ', e.last_name) AS dept_manager, d.dept_name, s.salary
FROM employees AS e
JOIN dept_manager AS dm
ON dm.emp_no = e.emp_no
JOIN departments AS d
ON d.dept_no = dm.dept_no
JOIN salaries AS s
ON s.emp_no = e.emp_no
WHERE dm.to_date > CURDATE()
AND s.to_date > CURDATE()
ORDER BY d.dept_name;
# Bonus
SELECT CONCAT(e.first_name, ' ', e.last_name) AS 'Employee', d.dept_name,
CONCAT(e2.first_name, ' ', e2.last_name) AS 'Manager'
FROM employees AS e
JOIN dept_emp de ON e.emp_no = de.emp_no
JOIN departments d ON de.dept_no = d.dept_no
JOIN dept_manager dm ON d.dept_no = dm.dept_no AND dm.to_date > CURDATE()
JOIN employees e2 ON e2.emp_no = dm.emp_no
WHERE de.to_date > CURDATE()
ORDER BY d.dept_name;