【问题标题】:How to project on a repeating attribute如何在重复属性上投影
【发布时间】:2015-10-26 19:12:14
【问题描述】:

使用关系代数,我必须检索工资高于其工作部门经理工资的员工列表。

我有以下 2 个表:

员工

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

部门

Dname | Dnumber | MgrSSN | MgrStartDate

其中DeprtNo 指向DnumberMgrSSN 指向SSN

我尝试这个查询的方式如下:

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 和薪水。一次用于经理,一次用于非经理。所以我不知道如何正确投影。

【问题讨论】:

    标签: sql database database-design relational relational-algebra


    【解决方案1】:
    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-23
      • 2017-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多