关于多表的统计问题!全部家当了!(12分)

  • 主题发起人 主题发起人 chigo
  • 开始时间 开始时间
C

chigo

Unregistered / Unconfirmed
GUEST, unregistred user!
定义了三个表:
表1:库存表,主要有时间、商品号、库存量三个字段;
表2:进货表,主要有时间、商品号、进货量、换算1四个字段;
表3:销售表,主要有时间、商品号、售货量、换算2四个字段;
我想完成这样的功能:
假设现在库存表里统计的是至昨天晚上为止的各种商品的库存量,现在,我想更新
库存表里面各种商品的库存量,每种商品的新库存量:=原库存量 + 进货量 * 换算 - 售货量 * 换算2。
谁能告诉我应该怎么做啊?(三层结构,客户端用clientdataset,dcom来连接)
 
update 库存表
set 库存量 = 库存量 +
(select sum(进货量 * 换算1) from 进货表 where 商品号=库存表.商品号 and 时间条件) -
(select sum(销货量 * 换算2) from 销售表 where 商品号=库存表.商品号 and 时间条件)
sql server下可以用,其他dbms不知道
 
to delphi:
我使用access数据库,然后在sql explorer中按照你的方法进行更新,提示错误:
Key violation.[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
是不是什么东西要设置啊?
我的语句:
update ProdStock
set ProdStock = prodstock +
(select Sum(Innum * Change1) from InProducts where prodid = ProdStock.prodid
and indate >= ProdStock.proddate) -
(select Sum(outNum * Change2) from OutProducts where prodid = prodstock.prodid
and outdate >= prodstock.proddate)
或者我的语句有误?请帮帮忙啦!
 
那个语句在oracle中也能正常工作,access比较特殊吗?
 
接受答案了.
 
后退
顶部