SQL选择具有最小销售额的员工的所有订单

时间:2012-11-05 04:49:08

标签: sql oracle oracle10g

我正在尝试从以下数据库架构中选择销售额最低的所有员工:

  

员工(eno,ename,zip,hdate)

     

零件(pno,pname,qoh,价格,等级)

     

客户(cno,cname,street,zip,phone)

     

订单(ono,cno,eno,收到,发货)

     

Odetails(ono,pno,qty)

     

Zipcodes(zip,city)

我无法得到我正在努力为每位员工的总销售量而不会出错的查询。我的问题是获得与员工相关的每个订单的数量*价格。

1 个答案:

答案 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。

希望这有助于交配。