首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Msaccess2007中从同一个表中进行选择和更新

如何在Msaccess2007中从同一个表中进行选择和更新
EN

Stack Overflow用户
提问于 2012-03-29 01:08:49
回答 2查看 1.2K关注 0票数 2

我希望能够选择和更新我当前的股票表格

这是我的问题:

代码语言:javascript
复制
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不起作用

代码语言:javascript
复制
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语句,它可以工作:

代码语言:javascript
复制
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 <<这里是指向我的关系表图像的链接

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-29 01:31:26

可以使用Domain Aggregate Functions来避免“操作必须使用可更新查询”的错误。

在您的例子中,您似乎想用来自stock_id=2的数量替换stock_id=1的数量。

代码语言:javascript
复制
UPDATE current_stock 
SET current_stock.quantity =
    DLookup("quantity", "current_stock", "stock_id=2")
WHERE stock_id=1;
票数 2
EN

Stack Overflow用户

发布于 2012-03-29 05:47:11

如果您根据此数据模型在表中保存与笔记本电脑相关的stockId

然后,您可以使用以下SQL更新它

代码语言:javascript
复制
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"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9912419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档