【问题标题】:UPDATE inventory table after sale transaction更新库存表售后交易
【发布时间】:2016-11-29 08:29:03
【问题描述】:

我需要根据 product_id 更新 Inventory 表中的 QTY 售后交易

库存表有 Product_id QTY_onhand

销售表有 sale_id product_id 数量_已售出

产品表有 product_id 产品名称

如果客户购买了 2 个苹果,我需要根据产品表中的 Apple ID 从 QTY_onhand 中减去 2 来更新库存表

谢谢

【问题讨论】:

  • 这听起来像是一个家庭作业问题。你有没有尝试过? Stack Overflow 不是免费的代码编写服务。
  • 寻找触发器。
  • 我不认为 Stack Overflow 有不允许作业问题的规则 :)
  • 也许这不是一个规则,但有一些好的做法。做别人的功课对双方都不是好习惯。
  • 我不需要任何人为我做这件事。我只需要一些可以帮助我自己做的建议或想法:)

标签: sql oracle


【解决方案1】:

试试这个,

UPDATE Inventory SET QTY_onhand = QTY_onhand - A.QTY_sold
FROM 
(
   SELECT Sale.QTY_sold, Sale.product_id FROM Sale
   WHERE EXISTS(SELECT 1 FROM product WHERE product_name = 'apples' AND      
   product.product_id = Sale.product_id)
)A
WHERE Inventory.product_id = A.product_id

【讨论】:

  • 什么是意思?
  • A是子查询的别名
  • 您不能在 oracle 中使用 UPDATE FROM 语句。对于类似的功能,您需要改用 MERGE 语句或 set 语句右侧的相关子查询。此外,OP 不想多次运行此语句,否则他们最终会失去所有的苹果。
猜你喜欢
  • 2014-12-26
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2023-02-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2021-03-24
相关资源
最近更新 更多