【发布时间】:2012-08-02 07:13:13
【问题描述】:
我正在尝试生成一个 SQL 查询来查找部门名称(带有员工姓名),其中有 2 名以上的员工其工资大于相应部门平均工资的 90%。我的 SQL 代码运行良好,没有语法错误,但输出给了我额外的数据。该表如下所示
琼斯会计 3000 钢铁会计 2500 威尔逊研究 3000 沃尔夫研究 2500 李研究2400 兰开斯特销售额 2000 杰克逊销售额 2500 费希尔销售额 3000 亚当斯 IT 2000 米勒 IT 1000 斯科特 IT 2500 史密斯 IT 2900 国王行政 5000 约斯特执行 4500 克拉克执行官 4000我的代码如下。
Select department_name , employee_name
from department d , employee e
where e.department_id = d.department_id
and (SELECT COUNT(*)
FROM Employee E
WHERE E.department_ID = D.department_ID) > 2
and salary >
0.9*(SELECT ROUND(AVG(salary),2)
FROM employee e_inner
WHERE e_inner.department_id = e.department_id);
我注意到我的代码返回的部门值超过 2 名员工和工资 > 部门平均工资的 90%。而我正在寻找拥有超过 2 名员工的部门其工资超过部门平均工资的 90%
【问题讨论】:
-
区分大小写吗?您是否需要 E 以外的别名与 e 不同?
-
它不区分大小写。我的输出应该只给我 2 个部门,在这个阶段给我 4 个。