定义了三个表:
表1:库存表,主要有时间、商品号、库存量三个字段;
表2:进货表,主要有时间、商品号、进货量、换算1四个字段;
表3:销售表,主要有时间、商品号、售货量、换算2四个字段;
我想完成这样的功能:
假设现在库存表里统计的是至昨天晚上为止的各种商品的库存量,现在,我想更新
库存表里面各种商品的库存量,每种商品的新库存量:=原库存量 + 进货量 * 换算 - 售货量 * 换算2。
谁能提供具体做法啊?

解决方案 »

  1.   

    UPDATE 库存表
       SET 库存表.库存量=库存表.库存量+ 
          (SELECT 进货量 * 换算
             FROM 进货表
                WHERE 库存表.商品号= 进货表.商品号)-(SELECT 售货量 * 换算
             FROM 销售表
                WHERE 库存表.商品号= 销售表.商品号)
       FROM 库存表,进货表,销售表
      

  2.   

    access数据库下这样做能行吗?
      

  3.   

    行,你用adoquery连接就行了,只不过你的字段最好用英文表示
      

  4.   

    但是,我在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' 中。
    这是为什么阿?