收录日期:2018/06/20 12:05:38 时间:2016/05/18 03:14:00 标签:数据库相关
定义了三个表:
表1:库存表,主要有时间、商品号、库存量三个字段;
表2:进货表,主要有时间、商品号、进货量、换算1四个字段;
表3:销售表,主要有时间、商品号、售货量、换算2四个字段;
我想完成这样的功能:
假设现在库存表里统计的是至昨天晚上为止的各种商品的库存量,现在,我想更新
库存表里面各种商品的库存量,每种商品的新库存量:=原库存量 + 进货量 * 换算 - 售货量 * 换算2。
谁能提供具体做法啊?
为什么没有人回帖啊?
UPDATE 库存表
   SET 库存表.库存量=库存表.库存量+ 
      (SELECT 进货量 * 换算
         FROM 进货表
            WHERE 库存表.商品号= 进货表.商品号)-(SELECT 售货量 * 换算
         FROM 销售表
            WHERE 库存表.商品号= 销售表.商品号)
   FROM 库存表,进货表,销售表
access数据库下这样做能行吗?
行,你用adoquery连接就行了,只不过你的字段最好用英文表示
但是,我在SQL explorer 测试: 
 update ProdStock
 set ProdStock.Stock = ProdStock.Stock +
  (select InNum * Change1 from InProducts where InProducts.ProdId = ProdStock.ProdId) -
  (select OutNum * Change2 from OutProducts where OutProducts.ProdId = ProdStock.ProdId)
  from ProdStock,InProducts,OutProducts
提示错误:
General SQL error.[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'ProdStock.ProdStock +  (select InNum * Change1    from InProducts
    where InProducts.ProdId = ProdStock.ProdId) -  (select OutNum * Change2
   from OutProducts whereOutProducts.ProdId = ProdStock.ProdId) from ProdStock' 中。
这是为什么阿?
没人看么?