2017-12-05 12 views
0

データベーススキーマは、このようなものです:このスキーマから会社賢明最高給与従業員名を取得する方法

従業員(EMP_ID番号、PERSON_NAME、DOB、通り、都市)

会社(のcompany_id#、COMPANY_NAME、都市)

作品(EMP_ID、のcompany_id、給与)

が管理(EMP_ID、MANAGER_ID)

insert into employee values('e-1','dipankar pal','15-jul-1997','h.m raod','kolkata'); 
insert into employee values('e-2','subhadip roy','15-jan-1997','garia','kolkata'); 

表は少し混乱するかもしれ管理し、ここで私は

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'); 
+1

を試してみていますか?あなたはmysql、oracle、postgresqlというタグを付けました。 – Nicarus

+0

質問に該当しないタグは使用しないでください。実際に使用しているデータベースが不明なため、データベースタグを削除しました。実際に使用しているデータベースの*のみ*のタグを追加してください –

+0

ああ、実際に私はstackoverflowに新しいです:)私はオラクル10g Express Editionを使用しています –

答えて

1

私のポイントをクリアするために挿入した一部のデータは、データベース・ソフトウェアがこれです

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; 
+0

はいはい! :) –

0
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 
; 
関連する問題