用sql语句创建一个视图能将工资情况表的基本工资和加班计算出总工资后将属于同一个部门的员工总工资加其来计算出其部门平均工资,其中工资情况表中有职工编号,职工信息表中有职工编号和部门编号,部门表中有部门编号和部门名称
时间: 2024-10-14 21:07:12 浏览: 26
首先,你需要确保三个表(工资情况表、职工信息表和部门表)都有职工编号作为关联字段。假设工资情况表名为`salary_info`,职工信息表名为`employee_info`,部门表名为`department`。你可以使用以下SQL语句创建一个视图来计算每个部门的平均总工资:
```sql
CREATE VIEW department_average_salary AS
SELECT
d.department_name,
AVG(SI.total_salary) as avg_total_salary
FROM
salary_info SI
JOIN
employee_info EI ON SI.employees_id = EI.employee_id
JOIN
department D ON EI.department_id = D.department_id
GROUP BY
d.department_name;
```
在这个查询中:
- `SI.total_salary` 是计算后的总工资(基本工资+加班费),如果你没有这个字段,需要先进行相应的计算,例如通过SUM(`SI.basic_salary` + `SI.overtime`)。
- 使用JOIN操作连接三个表,基于职工编号(`employees_id` 或 `employee_id`)和部门编号(`department_id`)。
- GROUP BY `d.department_name` 按照部门分组,然后计算每个部门的平均总工资。
阅读全文