首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

仓管系统,更新库存数据有关问题

2012-03-13 
仓管系统,更新库存数据问题该仓库管理系统有三个表:入库表intable(型号,配置,入库数量,入库时间,入库备注)

仓管系统,更新库存数据问题
该仓库管理系统有三个表:入库表intable(型号,配置,入库数量,入库时间,入库备注);出库表outtable(型号,配置,出库数量,出库时间,发货客户,出库备注);库存表stocktable(型号,配置,库存数量,备注)。在添加完入库记录,出库记录之后,系统在库存管理功能块须实现自动盘点库存并将记录添加进入库存表中。
  小弟写了条语句想实现该功能(还未试验可否),感觉偏麻烦。不知有没更好的语句,请各位指点。
   
  update stocktable set 库存数量 = 库存数量+intable.入库数量-outtable.出库数量 where intable.型号= outtable.型号 and outtable.型号= stocktable.型号 and intable.配置= outtable.配置 and outtable.配置= stocktable.配置;(该语句实现更新库存表中有型号的产品数量)
   
  select intable.型号,intable.配置,intable.入库数量 as 库存数量,intable.备注 from intable,stocktable where intable.型号 not in(select 型号 from stocktable)into table stk.dbf
  append from stk
  (以上两条语句希望实现添加库存表中没有型号的记录)
  自我感觉上面这些语句有问题。

[解决办法]
UPDATE 语句须VFP9支持,可以

第二条有问题
须VFP9支持
insert into intable(型号,配置,入库数量,备注)
select intable.型号,intable.配置,intable.入库数量 as 库存数量,intable.备注 from intable
 left join stocktable on intable.型号= stocktable.型号 where stocktable.型号 is null 


[解决办法]
UPDATE 语句须VFP9支持,可以

第二条有问题
须VFP9支持
insert into intable(型号,配置,入库数量,备注)
select intable.型号,intable.配置,intable.入库数量 as 库存数量,intable.备注 from intable
 left join stocktable on intable.型号= stocktable.型号 where stocktable.型号 is null 


[解决办法]
如果你用的是 VFP9.0:
update stocktable set 库存数量 = 库存数量+intable.入库数量-outtable.出库数量 where intable.型号= outtable.型号 and outtable.型号= stocktable.型号 and intable.配置= outtable.配置 and outtable.配置= stocktable.配置;(该语句实现更新库存表中有型号的产品数量)

改为

Update stocktable Set 库存数量=库存数量+intable.入库数量-outtable.出库数量 From intable,outtable Where (stocktable.型号=intable.型号 And stocktable.型号=outtable.型号) And (stocktable.配置=intable.配置 And stocktable.配置=outtable.配置)




[解决办法]
第二句,VFP9.0

Insert Into stocktable (型号,配置,入库数量,备注) Select A.型号,A.配置,A.入库数量,A.备注 From intable A Left Join stocktable B On A.型号=B.型号 Where B.型号 Is Null

[解决办法]
其实不用库存表stocktable,直接用语句:select a.型号,a.配置,a.入库数量-b.出库数量 from intable a,outtable b where a.型号=b.型号
[解决办法]
* 第一句 VFP9.0 以下
Select A.型号,A.入库数量-Nvl(B.出库数量,0) As 库存数量1 Into Cursor T1 From intable A Left Join outtable B On A.型号=B.型号 And A.配置=B.配置
Select T1
Scan
Update stocktable Set 库存数量=库存数量+T1.库存数量1 Where stocktable.型号=T1.型号 And stocktable.配置=T1.配置
Endscan


* 第二句 VFP9.0 以下
Select A.型号,A.配置,A.入库数量 As 库存数量,A.备注 Into Cursor stk From intable A Left Join stocktable B On A.型号=B.型号 Where B.型号 Is Null
Select stocktable
Append From Dbf("stk")
[解决办法]
第一条少了FROM
Update stocktable Set 库存数量=库存数量+intable.入库数量-outtable.出库数量 From intable,outtable Where (stocktable.型号=intable.型号 And stocktable.型号=outtable.型号) And (stocktable.配置=intable.配置 And stocktable.配置=outtable.配置)
[解决办法]
6要麻烦一些:
1
Select A.型号,A.入库数量-Nvl(B.出库数量,0) As 库存数量1 Into Cursor T1 From intable A Left Join outtable B On A.型号=B.型号 And A.配置=B.配置
Select T1
Scan
Update stocktable Set 库存数量=库存数量+T1.库存数量1 Where stocktable.型号=T1.型号 And stocktable.配置=T1.配置
Endscan
2
Select A.型号,A.配置,A.入库数量 As 库存数量,A.备注 Into Cursor stk From intable A Left Join stocktable B On A.型号=B.型号 Where B.型号 Is Null
Select stocktable


Append From Dbf("stk")
[解决办法]
6要麻烦一些:
1
Select A.型号,A.入库数量-Nvl(B.出库数量,0) As 库存数量1 Into Cursor T1 From intable A Left Join outtable B On A.型号=B.型号 And A.配置=B.配置
Select T1
Scan
Update stocktable Set 库存数量=库存数量+T1.库存数量1 Where stocktable.型号=T1.型号 And stocktable.配置=T1.配置
Endscan
2
Select A.型号,A.配置,A.入库数量 As 库存数量,A.备注 Into Cursor stk From intable A Left Join stocktable B On A.型号=B.型号 Where B.型号 Is Null
Select stocktable
Append From Dbf("stk")
[解决办法]
你的完整代码

热点排行