0

我正在用 java 编写一个简单的应用程序,但我被困在一个 sql 语句中。假设我有两个items用属性itemId和属性调用的表quantityorderDetails还有属性itemIdquantity。在 Items 表中,我保留了所有项目,在 orderDetails 表中,我保留了 itemId 和数量,这些是租给客户的。目标是编写一个 sql 语句,该语句返回包含 itemId 和当前可用项目数量的表。我尝试了几种方法,但没有找到合适的解决方案。(我对 sql 非常陌生)。这是我尝试过的其中之一:

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

提前致谢!

4

2 回答 2

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 (+);
于 2013-04-26T12:38:17.923 回答
1

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

select items.itemId, items.quantity - sum(quantity)
from items, orderdetails 
where orderdetails.itemid = items.itemid
group by items.itemId, items.quantity
于 2013-04-26T12:17:04.703 回答