181. Employees Earning More Than Their Managers
Description
The Employee
table holds all employees including their
managers. Every employee has an Id, and there is also a column for the
manager Id.
+----+-------+--------+-----------+ | Id | Name | Salary | ManagerId | +----+-------+--------+-----------+ | 1 | Joe | 70000 | 3 | | 2 | Henry | 80000 | 4 | | 3 | Sam | 60000 | NULL | | 4 | Max | 90000 | NULL | +----+-------+--------+-----------+
Given the Employee
table, write a SQL query that finds out
employees who earn more than their managers. For the above table, Joe is
the only employee who earns more than his manager.
+----------+ | Employee | +----------+ | Joe | +----------+
My Solution
Source Code
1
2
3
4
5
6
7
8
SELECT e.[name] as 'Employee'
FROM Employee AS e
INNER JOIN Employee AS m
ON m.id = e.managerid
WHERE e.salary > m.salary
Analysis
There is nothing exciting about this one. All that needs to be done is do an INNER JOIN. I guess that if you didn't alias your tables with descriptive names, it could get confusing.