提问人:PKYNI 提问时间:1/5/2023 最后编辑:PKYNI 更新时间:1/6/2023 访问量:73
根据查询结果更新字段
Updating fields based on results of a query
问:
因此,在这种情况下,一个人可以订购产品。我有一个查询,它返回订单 ID 的结果,并提供该人订购的产品。 我的问题是将其调整为更新查询,以便从产品表中的库存量中减去 OrderProduct 表/查询中的数量。
SQL 创建下面提供的表和查询以获取结果
CREATE DATABASE StockControl;
CREATE TABLE Membership (
MemberID int NOT Null,
LastName varchar(255),
FirstName varchar(255),
Primary Key(MemberID)
);
CREATE TABLE Orders (
OrderID int NOT Null,
MemberID int,
Primary Key(OrderID)
);
CREATE TABLE Product (
ProductID int NOT Null,
Price int,
Stock int,
Primary Key(ProductID)
);
CREATE TABLE OrderProduct (
ProductID int,
OrderID int,
Quantity int
);
INSERT INTO Membership(MemberID,LastName,FirstName)
VALUES (2,'Me','Too'),(33,'Darren','Kelly');
INSERT INTO Orders(OrderID,MemberID)
VALUES (1,33),(5,2);
INSERT INTO Product(ProductID,Price,Stock)
VALUES (1,30,12),(2,25,12),(3,25,12),(4,25,12),(5,25,12),(6,25,12),(7,25,12),(8,25,12),(9,25,12),(10,25,12);
INSERT INTO OrderProduct(ProductID,OrderID,Quantity)
VALUES (1,5,1),(3,1,4),(9,1,6),(10,1,2);
这是将所有产品作为 orderID 1 的一部分返回的查询,在完整版中,这将可以是可变的。
SELECT OrderProduct.ProductID, OrderProduct.OrderID, OrderProduct.Quantity, Product.Price, [Quantity]*[Price] AS Cost
FROM Product INNER JOIN OrderProduct ON Product.ProductID = OrderProduct.ProductID
GROUP BY OrderProduct.ProductID, OrderProduct.OrderID, OrderProduct.Quantity, Product.Price, [Quantity]*[Price]
HAVING (((OrderProduct.OrderID)=1))
ORDER BY OrderProduct.OrderID;
这将返回正确的结果,但是在尝试将其实现到更新时,我卡住了。我想要它,这样它就会查看 3 个结果,并从产品 3 中减去 4,从产品 6 中减去 9,从产品 2 中减去 10
到目前为止的尝试
UPDATE SingleOrder INNER JOIN Product ON SingleOrder.ProductID = Product.ProductID SET Product.Stock = Product.Stock-SingleOrder.Quantity WHERE ((Product.ProductID=SingleOrder.ProductID));
如果不清楚,我很乐意更新问题等。
谢谢
答: 暂无答案
上一个:C# 重复文本到语音合成
评论
Sum([Quantity]*[Price]) AS Cost