嘿所有,所以我有2张桌子。
清单:
ITEMNAME | QUANTITY
---------|---------
ITEM A | 200
ITEM B | 310
ITEM C | 255
ITEM D | 115
销售:
SALENO | QUANTITY | ITEMNAME
-------|----------|---------
1001 | 5| ITEM A
1002 | 100| ITEM X
1003 | 1| ITEM C
1004 | 20| ITEM B
我遇到的问题是使用特定的SALENO更新我的库存QUANTITY值。
假设我已经将我的库存更新到SALENO 1002。
所以SALENO 1003& 1004是新销售,因此我只需要从我的库存量中减去这两个特定订单。我怎样才能做到这一点?
任何建议表示赞赏。谢谢!
答案 0 :(得分:1)
要在Oracle中编写包含多个表的更新语句,您需要使用如下语法:
UPDATE Inventory SET
Inventory.QUANTITY = Inventory.QUANTITY - (SELECT
Sales.QUANTITY
FROM Sales
WHERE
Sales.ITEMNAME = Inventory.ITEMNAME AND
Sales.SALENO IN (1003, 1004)
)
WHERE
(Inventory.ITEMNAME IN
(
SELECT
s.ITEMNAME
FROM SALES s
WHERE
s.SALENO IN (1003, 1004)
)
)
使用sql fiddle here
答案 1 :(得分:0)
以下工作可以吗?
UPDATE Inventory, Sales
SET Inventory.QUANTITY = Inventory.QUANTITY - Sales.QUANTITY
WHERE Inventory.ITEMNAME = Sales.ITEMNAME
AND Sales.SALENO IN (1003, 1004)