这个sql会工作吗

时间:2016-10-28 00:17:23

标签: sql

编写一条SQL语句,为满足以下所有条件的所有受薪员工打印所有员工的姓名及其部门编号:

  1. 处理2个项目,
  2. 不要赚3万美元,
  3. 他们的部门经理和主管有相同的名称(注意:由于名称不是员工表的密钥,这个要求并不意味着这两个人是同一个人)。
  4. 请注意,主管不是部门经理

    SQL代码:

    select 
        ename, d#
    from 
        employee, department
    where 
        count(p#) = 2
        and salary < 30000
        and cname, d# in (select ename, d#
                          from employee, department
                          where employee.cname = depatment.cname);
    

1 个答案:

答案 0 :(得分:0)

这对您来说是一个良好的开端,因为缺少有关管理人员和主管的数据(通常您没有提供任何架构):

select ename
from employee e
join department d on e.cname = d.cname
where salary < 30000
group by ename
having count(p#) = 2

它将显示每个员工的工资低于30K,适用于2个项目。

您可能需要更多的连接/子查询来实现所需的输出。