Mysql 计算每位员工的关系(员工工资)/(部门工资贡献)
我从SQL开始,一直在做以下练习: 计算每个员工工资的百分比+ 佣金来自该部门的总供款工资 他在一家公司工作 我的方案如下: 我的尝试是:Mysql 计算每位员工的关系(员工工资)/(部门工资贡献),mysql,Mysql,我从SQL开始,一直在做以下练习: 计算每个员工工资的百分比+ 佣金来自该部门的总供款工资 他在一家公司工作 我的方案如下: 我的尝试是: SELECT employee.last_name, temp1.department_id AS department, wage/deptwage*100 AS "%wage/deptwage" FROM employee, (SELECT department_id, SUM(salary+COALESCE(commission, 0)) AS de
SELECT employee.last_name, temp1.department_id AS department, wage/deptwage*100 AS "%wage/deptwage"
FROM employee,
(SELECT department_id, SUM(salary+COALESCE(commission, 0)) AS deptwage
FROM employee
GROUP BY department_id ) temp1,
(SELECT last_name, (salary+COALESCE(commission, 0)) AS wage
FROM employee ) temp2
WHERE temp1.department_id=employee.department_id
执行查询后,我基本上得到了1024行:
1024来自32*32:它为每个员工执行32倍的工资/折旧*100,即员工总数
我尝试编写一个新脚本,但没有成功,因此我非常感谢您的帮助。您可以通过加入来完成此操作:
SELECT employee.last_name,
dep.department_id AS department,
(salary+COALESCE(commission, 0))*100/deptwage AS "%wage/deptwage"
FROM employee
inner join (SELECT department_id,
SUM(salary+COALESCE(commission, 0)) AS deptwage
FROM employee
GROUP BY department_id
) dep
on dep.department_id = employee.department_id
您需要删除第3个表并加入前2个表:
SELECT
e.last_name,
d.department_id AS department,
-- wage/deptwage*100 AS "%wage/deptwage", -- remove this
(e.salary + COALESCE(e.commission, 0)) / (d.deptwage * 100) as "% wage/deptwage"
FROM
employee e
JOIN
(SELECT Employee_ID, department_id, SUM(salary + COALESCE(commission, 0)) AS deptwage
FROM employee
GROUP BY department_id) d
ON
e.Employee_ID = d.Employee_ID
WHERE
d.department_id = e.department_id
请编辑你问题的标题,因为它不清楚你的意思。谢谢你的回答。老实说,我不知道内部连接关键字。我现在正在读关于它的书。