获取当前可用物品的数量

时间:2013-04-26 12:10:02

标签: sql oracle

我在java中编写一个简单的应用程序,我被困在一个sql语句中。假设我有两个名为items的表,其中属性itemIdquantity以及orderDetails也包含属性itemIdquantity。在表格中,我保留了所有项目,并且在订单表格中,我保留了一个itemId和数量,这些都是雇佣给客户的。目标是编写一个sql语句,该语句返回带有itemId的表和当前可用的项数。我尝试了几种方法,但我找不到合适的解决方案。 (我在sql中非常新)。这是我尝试过的其中一个:

SELECT itemId, quantity - (SELECT SUM(quantity) FROM orderdetails GROUP BY itemId)
FROM items, orderdetails 
WHERE orderdetails.itemid = items.itemid;

提前致谢!

2 个答案:

答案 0 :(得分:2)

我认为您可以使用相关查询(通常应避免使用IIRC):

select 
   items.itemid, 
   items.quantity - 
       (select sum(quantity) 
          from orderdetails 
          where orderdetails.itemid = items.itemid group by itemid) left
from items;

或者您可以加入两个表:

select items.itemid, quantity - total.q left from
items, 
  (select itemid, sum(quantity) q from
   orderdetails
   group by itemid) total
where items.itemid = total.itemid (+);

答案 1 :(得分:1)

您必须提供一些表格数据,例如:

select items.itemId, items.quantity - sum(quantity)
from items, orderdetails 
where orderdetails.itemid = items.itemid
group by items.itemId, items.quantity