2015-10-26 72 views
0

使用關係代數,我必須檢索薪水高於他們工作的部門經理工資的僱員的名單。如何投影重複屬性

我有以下2個表:

EMPLOYEE

Fname | Minit | Lname | **SSN** | BDate | Address | Sex | Salary | SupervSSN | DeprtNo 

DEPARTMENT

Dname | Dnumber | MgrSSN | MgrStartDate 

DeprtNoDnumberMgrSSNSSN

我嘗試這種查詢方式如下:

MGRS ← (EMPLOYEE) |><| MgrSSN = SSN (DEPARTMENT) //All Manager employees 
EMPS ← (EMPLOYEE) |><| MgrSSN != SSN (DEPARTMENT)//All non-managers employees 
EM ← (EMPS) |><| DeprtNo = DeprtNo (MGRS)  //Managers are joined with non-managers who work in their Department. 

現在我只想項目經理SSN的基礎上選擇經理人的薪酬與非管理者的薪酬進行比較。但是,EM包含重複類別 - SSN和薪資。一次爲經理,一次爲非經理。所以我不知道如何正確投影。

回答

0
select MgrSSN from Department where 
Dnumber in (
    select DeprtNo from Employee where 
    SSN not in (select Employee.SSN from Employee inner join Department on Employee.SSN = Department.MgrSSN) 
    and Salary > (select min(Employee.Salary) from Employee inner join Department on Employee.SSN = Department.MgrSSN) 
) 

我認爲這應該能夠投影部門的MgrSSN,其中存在僱員的薪水高於經理。