入库明细表自动对库存表进行货物增减操作的问题!(100分)

  • 主题发起人 主题发起人 阿梁
  • 开始时间 开始时间

阿梁

Unregistered / Unconfirmed
GUEST, unregistred user!
由入库明细表(indetail)自动对库存(kucun)表进行货物增减操作,
插入新的货物(indeteail-->kucun)的SQL已经写出,没有问题,如下:
insert into kucun(serial,shortname,price,number)
select serial,name,price,number from indetail
where (indetail.serial+indetail.name not in
(select kucun.serial+kucun.shortname from kucun))
更新kucun的SQL如下,不过无法执行!!!!!!!
update kucun
set a.number=a.number+b.number
from kucun a join indetail b on
a.serial=b.serial and
a.name=b.name
是不是因为我用的是PARDOX有关,因为类似的语句在MS-SQL SERVER中
就能通过。
望各位大侠帮小弟解决,谢谢!
 
如果MSSQL可以通过,那么应该是PARDOX对SQL的操作并没有完全遵循SQL标准,毕竟是一个桌面形数据库,
同样的SQL还可以写成如下格式:
update kucun
set kucun.number=kucun.number+b.number
from indetail b
kucun.serial=b.serial and
kucun.name=b.name
你可以试试
 
pradox用local sql
不支持join,不过可以如上,用where代替
 
好象local sql的UPDATE加不进'FROM',一加进就出错,看来只能用笨办法:
while not table1.eofdo

begin
numbervar:=table1.fields(?).value;
serialvar:=table1.fields(?).value;
namevar:=table1.fields(?).value;
...
query1.add.add('update kucun set kucun.number=kucun.number+:numbervar
where serial:=:serialvar and name:=:namevar');
query1.params[0].asinteger :=numbervar;
...
table1.next;
end;
 
多人接受答案了。
 
后退
顶部