Mysql 计算每位员工的关系(员工工资)/(部门工资贡献)

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

我从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 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

请编辑你问题的标题,因为它不清楚你的意思。谢谢你的回答。老实说,我不知道内部连接关键字。我现在正在读关于它的书。