[英]MySQL newbie: Query to find the name of each employee whose salary exceeds the average salary of all employees in his or her department
[英]MySQL query to print name and salary of each employee
我有这个架构:
Emp(eid: integer,ename: string,age: integer,salary: real)
Works(eid:integer,did: integer,pct_time: integer)
Dept(did:integer,budget: real,managerid:integer)
我正在尝试打印每位薪水超过其工作所在部门预算的员工的姓名和薪资。
我有此SQL语句,但它为ename
返回一个空列,我不确定为什么。 有人可以帮忙吗?
select E.ename, E.Salary
from Emp E
where E.salary > all (select D.budget
from Dept D, Works W
where E.eid = W.eid and D.did = W.did)
您可以通过普通联接来做到这一点
SELECT E.ename
FROM Emp E
JOIN Works W ON E.eid = W.eid
JOIN Dept D ON D.did = W.did
WHERE E.salary > D.budget
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.