使用以下SQL语句列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。
时间: 2023-05-30 07:01:13 浏览: 488
SELECT e.empno, e.ename, d.dname
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE e.hiredate < (SELECT hiredate FROM emp WHERE empno = e.mgr);
相关问题
员工表emp:员工编号,姓名,工作职位,雇佣日期,工资,奖金,部门 部门表dept:部门编号,名称,部门领导 1.列出在销售部工作的员工的姓名 2.查询20部门的所有员工信息,并显示所在部门名称 3.查询30部门有多少员工,每月发多少工资 4.列出与庞统从事相同工作的所有员工及部门名称 5.列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导 6.列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称
请注意,由于我没有实际的数据库来执行这些查询,我将给出相应的 SQL 查询语句供你参考。你可以根据自己的数据库表结构来调整这些查询语句。
1. 列出在销售部工作的员工的姓名:
```sql
SELECT 姓名
FROM 员工表
WHERE 部门 = '销售部';
```
2. 查询20部门的所有员工信息,并显示所在部门名称:
```sql
SELECT e.*, d.名称 AS 部门名称
FROM 员工表 e
JOIN 部门表 d ON e.部门编号 = d.部门编号
WHERE e.部门编号 = 20;
```
3. 查询30部门有多少员工,每月发多少工资:
```sql
SELECT COUNT(*) AS 员工数, AVG(工资) AS 平均工资
FROM 员工表
WHERE 部门编号 = 30;
```
4. 列出与庞统从事相同工作的所有员工及部门名称:
```sql
SELECT e.*, d.名称 AS 部门名称
FROM 员工表 e
JOIN 部门表 d ON e.部门编号 = d.部门编号
WHERE e.工作职位 = (SELECT 工作职位 FROM 员工表 WHERE 姓名 = '庞统');
```
5. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导:
```sql
SELECT e.*, d.名称 AS 部门名称, s.姓名 AS 上级领导
FROM 员工表 e
JOIN 部门表 d ON e.部门编号 = d.部门编号
JOIN 员工表 s ON e.上级编号 = s.员工编号
WHERE e.工资 > (SELECT AVG(工资) FROM 员工表);
```
6. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称:
```sql
SELECT e.员工编号, e.姓名, d.名称 AS 部门名称
FROM 员工表 e
JOIN 部门表 d ON e.部门编号 = d.部门编号
WHERE e.雇佣日期 < (SELECT 雇佣日期 FROM 员工表 WHERE 员工编号 = e.上级编号);
```
请根据你的实际表名和字段名进行相应的调整。
sal列出受雇日期早于其直接上级的所有员工
可以使用如下的 SQL 查询语句来实现:
```sql
SELECT *
FROM employees emp
WHERE emp.hire_date < (
SELECT hire_date
FROM employees
WHERE employee_id = emp.manager_id
);
```
这个查询语句中,外层的 SELECT 语句从 employees 表中选择所有员工的信息,同时使用一个子查询来查找直接上级的雇佣日期。子查询中,WHERE 条件子句使用 emp.manager_id 来查找 emp 的直接上级,并返回其雇佣日期。然后,外层的 SELECT 语句使用 WHERE 子句来筛选出所有受雇日期早于其直接上级的员工。
这样,就能够列出所有受雇日期早于其直接上级的员工。
阅读全文