我希望能够选择和更新我当前的股票表格
这是我的问题:
UPDATE current_stock
SET current_stock.quantity =
(SELECT quantity
FROM (SELECT * FROM current_stock) As current_stock1
WHERE current_stock1.stock_id=2)
WHERE stock_id=1;如果我运行嵌套的select而不使用update,它工作得很好,但是将它与update语句一起使用总是返回错误:操作必须使用可更新查询
实际问题:
我想根据相应的笔记本电脑id从Bom_dell表中的所需数量字段中扣除当前库存数量
语法错误:(缺少运算符)查询express Dlookup ..
我猜嵌套的Dlookup不起作用
UPDATE current_stock
SET current_stock.quantity =
DLookup("quantity", "current_stock", "stock_id=1")-DLookup("req_quantity","Bom_dell","lap_id=DLookup("lap_id","laptop_info","model_name="Dell Inspiron"")")
WHERE stock_id=1;根据您的建议,我更改了代码以包含SELECT语句,它可以工作:
UPDATE current_stock
SET current_stock.quantity =
DLookup("quantity", "current_stock", "stock_id=1")-DLookup("req_quantity","Bom_dell","lap_id=(SELECT lap_id FROM laptop_info WHERE model_name='Dell Inspiron')")
WHERE stock_id=1;现在我需要做的就是添加一个for循环来扣除当前stock表中的所有数量
http://tinyurl.com/7eghddq <<这里是指向我的关系表图像的链接
发布于 2012-03-29 01:31:26
可以使用Domain Aggregate Functions来避免“操作必须使用可更新查询”的错误。
在您的例子中,您似乎想用来自stock_id=2的数量替换stock_id=1的数量。
UPDATE current_stock
SET current_stock.quantity =
DLookup("quantity", "current_stock", "stock_id=2")
WHERE stock_id=1;发布于 2012-03-29 05:47:11
如果您根据此数据模型在表中保存与笔记本电脑相关的stockId

然后,您可以使用以下SQL更新它
UPDATE (LaptopInfo INNER JOIN BomDell ON LaptopInfo.LaptopId = BomDell.LapTopId) INNER JOIN current_stock ON LaptopInfo.StockId = current_stock.StockId SET current_stock.Quantity = [Quantity]-[ReqQuantity] WHERE (((LaptopInfo.ModelName)="Dell Inspirion"));https://stackoverflow.com/questions/9912419
复制相似问题