【发布时间】:2017-03-26 16:53:20
【问题描述】:
例子。我有产品表,其中包含数量等。
item name: Shoes.
Quantity: 20
POS 表。如果用户购买了数量为 20 个的包。
Itenm name: Shoes
Quantity: 5
问题是。如何将数量:POS 表中的 5 减去产品表中的数量 20。谢谢。
【问题讨论】:
-
请显示您已经尝试过的任何代码。
例子。我有产品表,其中包含数量等。
item name: Shoes.
Quantity: 20
POS 表。如果用户购买了数量为 20 个的包。
Itenm name: Shoes
Quantity: 5
问题是。如何将数量:POS 表中的 5 减去产品表中的数量 20。谢谢。
【问题讨论】:
您可以将两个表加入项目名称并进行减法。
select p.item_name,
p.quantity - po.quantity
from product p
join POS po on p.item_name = po.item_name;
如果你需要用差值更新产品表,那么:
update product p
join POS po on p.item_name = po.item_name
set p.quantity = p.quantity - po.quantity;
如果有多行具有相同的项目名称,您可能希望先聚合它们然后加入更新:
update product p
join (
select item_name,
sum(quantity) as quantity
from POS
group by item_name
) po on p.item_name = po.item_name
set p.quantity = p.quantity - po.quantity;
【讨论】: