我正在尝试从以下数据库架构中选择销售额最低的所有员工:
员工(eno,ename,zip,hdate)
零件(pno,pname,qoh,价格,等级)
客户(cno,cname,street,zip,phone)
订单(ono,cno,eno,收到,发货)
Odetails(ono,pno,qty)
Zipcodes(zip,city)
我无法得到我正在努力为每位员工的总销售量而不会出错的查询。我的问题是获得与员工相关的每个订单的数量*价格。
答案 0 :(得分:1)
不会是这样的:
SELECT Employees.eno, Employees.ename, SUM(Odetails.qty * Parts.price) AS Sales
FROM Employees JOIN
Orders ON Employees.eno = Orders.eno JOIN
Odetails ON Orders.ono = Odetails.ono JOIN
Parts ON Parts.pno = Odetails.pno
GROUP BY Employees.eno, Employees.ename
上面的选择查询(SQL Server)将返回一个Employees列表及其各自的eno(猜测员工编号),并将其数量的SUM与部件的价格相乘,然后您将能够确定最低销售额的员工。您可以使用上面的选择作为派生表,然后按销售列排序,以查看谁拥有最少销售,第二,第三等的顺序。我将联接简单地称为“加入”,因为我不知道您的数据库,因为它可以是INNER JOIN或OUTER JOIN。
希望这有助于交配。