[英]Calculating Total Sales from Multiple MySQL Tables
我正在试图弄清楚如何确定使用MySQL的员工的总销售额。 数据库中有4个表格,有助于确定总销售额。 我能够创建一个Query,选择所有必要的表来计算Sales Total。
查询:
SELECT employees.eno, employees.ename, orders.ono, orders.eno,
parts.pno, parts.price,odetails.ono, odetails.pno, odetails.qty
FROM test.employees, test.parts, test.orders, test.odetails
WHERE employees.eno = orders.eno AND parts.pno = odetails.pno
这会出现一个表格,显示员工的姓名,项目,售价。 我不知道从哪里开始。 任何帮助将不胜感激! 我不确定存储过程是否有帮助,然后我可以在Java程序中调用它来打印出结果。 这里真的很困惑。 任何帮助,将不胜感激。 谢谢!
以下应该有效。
SELECT employees.ename, COUNT(employees.ename), (COUNT(employees.ename) * parts.price) FROM test.employees INNER JOIN (orders, parts) ON (employees.eno = orders.eno AND parts.pno = odetails.pno)
尝试:
SELECT employees.eno, employees.ename, SUM(parts.price * odetails.qty) as TotalSales
FROM test.employees
INNER JOIN test.orders
ON empoyee.eno = orders.eno
INNER JOIN test.odetails
ON orders.ono = odetails.ono
INNER JOIN test.parts
ON odetails.pno = parts.pno
GROUP BY employees.eno, employees.ename
您应该使用JOIN
将所有表连接到适当的结果中。 这是我从您的查询/数据库结构中可以告诉我将返回每个订单,加入订单详细信息,零件信息和员工信息的示例:
SELECT
*
FROM test.orders O
LEFT JOIN test.odetails OD ON OD.pno = O.ono
LEFT JOIN test.employees E ON E.eno = O.eno
LEFT JOIN test.parts P ON P.pno = OD.pno
从这里开始,如果您想获得每位员工的总数 ,您可以执行以下操作:
SELECT
E.eno,
SUM(OD.qty * P.price) AS employee_total
...
GROUP BY E.eno
...应该返回每个订单的员工编号和所有相关价格的总和,乘以每个订单的数量,并按员工编号分组。
然后你可以添加:
ORDER BY employee_total ASC -- or DESC...
订购从最低到最高,反之亦然。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.