表库存
INSERT INTO stock(stock_id, supplier_id, book_title, book_author, book_isbn, book_genre, stock_amount)
VALUES(01,1101, 'Harry Potter', 'J.K.Rowling', '44-5678-234-8767', 'Young Adult', ***3***);上面我已经把数据插入到我的表中,那里只剩下3本书了。
表订购
INSERT INTO orders(order_num, emp_id, stock_id, supplier_id, supplier_name, book_title, book_author, order_date, order_amount, customer_contact, received)
VALUES (1001 ,101 ,01 ,1101, 'Pengiun Books', 'Harry Potter', 'J.K. Rowling', '1-Mar-2017', ***10***, 0891234568,'***Y***');订购并收到了7本以上的书。因此,需要将它们添加到库存中。有人能帮我把订购的金额加到存货里吗?
我在使用oracle-sqldeveloper
我试过使用以下方法,但它不起作用:
UPDATE stock
SET stock.stock_amount = stock_amount + orders.order_amount
WHERE stock.stock_id = orders.stock_id;发布于 2017-05-10 14:24:19
在Oracle中,您可以使用merge来完成这一任务。或者,您可以在update中使用子查询。
UPDATE stock s
SET stock_amount = s.stock_amount +
(SELECT sum(o.order_amount)
FROM orders o
WHERE s.stock_id = o.stock_id
)
WHERE EXISTS (SELECT 1
FROM orders o
WHERE s.stock_id = o.stock_id
);发布于 2017-05-10 14:27:55
这将是t的解决方案。也许它能帮到你。
UPDATE s
SET stock_amount = stock_amount + o.order_amount
FROM stock s
INNER JOIN orders o ON o.stock_id = s.stock_id发布于 2017-05-18 08:33:25
您还可以尝试一个触发器,该触发器将在填充“接收”列时自动插入到股票中。或者简单地使用join with update或merge语句来执行任务。
希望能帮上忙!
https://stackoverflow.com/questions/43895170
复制相似问题