表格
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;
答案 0 :(得分:1)
在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
);
答案 1 :(得分:0)
这将是t-sql中的解决方案。也许它可以帮助你。
UPDATE s
SET stock_amount = stock_amount + o.order_amount
FROM stock s
INNER JOIN orders o ON o.stock_id = s.stock_id
答案 2 :(得分:0)
您还可以尝试触发器,当“已接收”列填充时,该触发器将自动插入库存。 或者只是使用带有更新或合并语句的连接来完成任务。
希望它有所帮助!!