Sql 如何从该模式中获取公司最高工资员工姓名

Sql 如何从该模式中获取公司最高工资员工姓名,sql,oracle,Sql,Oracle,数据库架构如下所示: 员工(环境管理人员id、姓名、dob、街道、城市) 公司(公司id、公司名称、城市) 工作(员工id、公司id、工资) 管理(emp_id、经理id) manages表可能有点混乱,下面是我插入的一些数据,以澄清我的观点 insert into manages values('e-3','e-1'); insert into manages values('e-4','e-1'); insert into manages values('e-5','e-1'); inser

数据库架构如下所示:

员工(环境管理人员id、姓名、dob、街道、城市)

公司(公司id、公司名称、城市)

工作(员工id、公司id、工资)

管理(emp_id、经理id)

manages表可能有点混乱,下面是我插入的一些数据,以澄清我的观点

insert into manages values('e-3','e-1');
insert into manages values('e-4','e-1');
insert into manages values('e-5','e-1');
insert into manages values('e-6','e-2');
insert into manages values('e-7','e-2');
试一试


这是哪个数据库软件?您已经标记了mysql、oracle和postgresql。请不要使用不适用于您的问题的标记。我删除了数据库标签,因为不清楚您实际使用的是哪一个。请只添加您实际使用的数据库的标记哦,谢谢,实际上我是stackoverflow的新手:)顺便说一下,我使用的是oracle 10g express编辑,然后添加
oracle
tag您到目前为止尝试了什么?????
insert into manages values('e-3','e-1');
insert into manages values('e-4','e-1');
insert into manages values('e-5','e-1');
insert into manages values('e-6','e-2');
insert into manages values('e-7','e-2');
SELECT Z.COMPANY_NAME, E.PERSON_NAME, Z.HIGHEST_SALARY
FROM
    (SELECT C.COMPANY_ID, C.COMPANY_NAME, MAX(W.SALARY) AS HIGHEST_SALARY
    FROM
    WORKS W INNER JOIN COMPANY C
    ON W.COMPANY_ID = C.COMPANY_ID
    GROUP BY C.COMPANY_ID, C.COMPANY_NAME ) Z
INNER JOIN WORKS W
ON Z.COMPANY_ID = W.COMPANY_ID
AND Z.HIGHEST_SALARY = W.SALARY
INNER JOIN EMPLOYEE E
ON W.EMP_ID = E.EMP_ID
ORDER BY Z.HIGHEST_SALARY DESC;
select company.company_name,employee.person_name as employee_name,y.salary as salary from employee,company,
(select works.emp_id,works.company_id,works.salary from works,
(select company_id,max(salary) as high from works group by(company_id)
)x where high=works.salary) y
where employee.emp_id=y.emp_id and company.company_id=y.company_id order by company_name
;