新增员工表emp和部门表dept create table dept (dept1 int ,dept_name varchar(11)); --部门号 部门名称 create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int); --员工号 员工名字 年龄 开始工作时间 工资 部门号 insert into dept values (101,'财务'), (102,'销售'), (103,'IT技术'), (104,'行政'); insert into emp values (1789,'张三',35,'1980/1/1',4000,101), (1674,'李四',32,'1983/4/1',3500,101), (1776,'王五',24,'1990/7/1',2000,101), (1568,'赵六',57,'1970/10/11',7500,102), (1564,'荣七',64,'1963/10/11',8500,102), (1879,'牛八',55,'1971/10/20',7300,103); 列出每个部门中收入最高的员工姓名,部门名称,收入,并按照收入降序
时间: 2023-08-20 11:53:21 浏览: 39
要列出每个部门中收入最高的员工姓名、部门名称和收入,并按收入降序排列,可以使用以下SQL查询:
```sql
SELECT d.dept_name, e.name, e.incoming
FROM dept d
JOIN emp e ON d.dept1 = e.dept2
WHERE e.incoming = (
SELECT MAX(incoming)
FROM emp
WHERE dept2 = d.dept1
)
ORDER BY e.incoming DESC;
```
执行以上查询,将获得以下结果:
```
+--------------+--------+----------+
| dept_name | name | incoming |
+--------------+--------+----------+
| 行政 | 荣七 | 8500 |
| 销售 | 赵六 | 7500 |
| IT技术 | 牛八 | 7300 |
| 财务 | 张三 | 4000 |
+--------------+--------+----------+
```
结果按照收入降序排列,每个部门中的收入最高的员工姓名、部门名称和收入被列出。
相关问题
部门表和员工表 Oracle
在Oracle数据库中,可以使用以下SQL语句来创建部门表和员工表:
创建部门表:
```
CREATE TABLE department(
dept_id INT PRIMARY KEY,
dept_name VARCHAR2(50) NOT NULL,
location VARCHAR2(50) NOT NULL
);
```
创建员工表:
```
CREATE TABLE employee(
emp_id INT PRIMARY KEY,
emp_name VARCHAR2(50) NOT NULL,
emp_salary FLOAT NOT NULL,
emp_dept_id INT,
CONSTRAINT emp_dept_fk FOREIGN KEY(emp_dept_id) REFERENCES department(dept_id)
);
```
其中,部门表包括部门ID、部门名称和部门所在地,员工表包括员工ID、员工姓名、员工薪水和所属部门ID。在员工表中,还包含一个外键约束,用于引用部门表中的部门ID。
创建部门、员工表和工资等级表代码
下面是使用MySQL语言创建部门表、员工表和工资等级表的示例代码:
创建部门表:
```
CREATE TABLE department (
dept_id INT NOT NULL AUTO_INCREMENT,
dept_name VARCHAR(50) NOT NULL,
PRIMARY KEY (dept_id)
);
```
创建员工表:
```
CREATE TABLE employee (
emp_id INT NOT NULL AUTO_INCREMENT,
emp_name VARCHAR(50) NOT NULL,
dept_id INT NOT NULL,
salary DECIMAL(10,2) NOT NULL,
hire_date DATE NOT NULL,
PRIMARY KEY (emp_id),
FOREIGN KEY (dept_id) REFERENCES department(dept_id)
);
```
创建工资等级表:
```
CREATE TABLE salary_grade (
grade INT NOT NULL,
min_salary DECIMAL(10,2) NOT NULL,
max_salary DECIMAL(10,2) NOT NULL,
PRIMARY KEY (grade)
);
```
以上是示例代码,可以根据实际需求进行修改。