Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL显示薪酬高于经理的员工_Sql - Fatal编程技术网

SQL显示薪酬高于经理的员工

SQL显示薪酬高于经理的员工,sql,Sql,我试图展示来自同一部门的员工,他们的收入高于他们的经理 SELECT ID, NAME, DEPARTMENT, SALARY, JOB FROM STAFF WHERE SALARY > ANY (SELECT SALARY FROM STAFF WHERE JOB = 'Manager') 这似乎不起作用,我真的不知道为什么 以下是表格的格式: ID | NAME | DEPARTMENT | SALARY | JOB 20 | JOHN | 180 | 52000

我试图展示来自同一部门的员工,他们的收入高于他们的经理

SELECT ID, NAME, DEPARTMENT, SALARY, JOB
FROM STAFF
WHERE SALARY > ANY (SELECT SALARY FROM STAFF WHERE JOB = 'Manager')
这似乎不起作用,我真的不知道为什么

以下是表格的格式:

ID | NAME | DEPARTMENT | SALARY | JOB

20 | JOHN | 180        | 52000  | Manager
30 | KATY | 180        | 60000  | Analyst

问题是您需要关联子查询以匹配相同的部门:

选择s1.ID、s1.NAME、s1.DEPARTMENT、s1.SALARY、s1.JOB 来自工资s1 哪里 s1.工作“经理”和 s1.薪资>从薪资s2中选择s2.薪资 其中s2.DEPARTMENT=s1.DEPARTMENT,s2.JOB=MANAGER; 这个答案假设每个部门只有一名经理。如果可能有多个管理器,则使用exists逻辑编写上述内容会更安全:

选择s1.ID、s1.NAME、s1.DEPARTMENT、s1.SALARY、s1.JOB 来自工资s1 哪里 s1.工作“经理”和 不存在从薪资s2中选择1 其中s2.DEPARTMENT=s1.DEPARTMENT和 s2.JOB=‘经理’和 s2.工资>=s1.工资;
如果您在第一次查询中从s1.salary>更改条件。。。到s1.salary>所有。。。然后,它还可以处理多个经理