SQL计算问题

时间:2015-05-23 03:51:37

标签: sql oracle11g

我试图通过加入两个表来找到每个类别的成本

我已经编写了这个查询,但它似乎为所有类别设置了相同的结果值。

SELECT category,
      (select sum(count(partid) * p.cost) 
       from PARTS p join order_line o using (part_id) 
       group by category, p.cost)
from parts p join order_line o using (part_id)
group by category

表格结构:

Parts:PartID#,description,manu_date,manu_id,cost,retai,discount,category
Order_line: Order#,item#,PartID,manu_id,unitprice,quantity

我想要完成的是我想要计算每个零件成本表的时间,并使用order_line表中的(数量* partid)计数来找出哪个类别的成本最高。

我正在使用oracle 11g

1 个答案:

答案 0 :(得分:2)

您的子查询与嵌入sql没有关联,因此每个类别的结果都相同。

您无需权衡部件成本与订单数量,这将通过连接隐式发生:

    SELECT category
         , sum (p.cost * o.quantity)
      FROM parts p
      JOIN order_line o USING (partid)
  GROUP BY category
         ;