读书人

有没有简单的SQL语句能够实现?解决办

发布时间: 2012-02-22 19:36:55 作者: rapoo

有没有简单的SQL语句能够实现?
表:
库存表1,库存表2.......:
不同部门对应不同库存表,如:部门1 对应库存表1,部门2对应库存表.......
因为部门数量不固定,所有库存表在创建部门时自动创建,
表中各列:
库存表1: 商品编号 汇总数量 其他
1 0 xx
2 5 xx
3 12 xx
库存表2: 商品编号 汇总数量 其他
1 0 xx
2 0 xx
3 0 xx

入库表: 编号 数量 单价 库存表属性
1 10 5 库存表1
1 20 5 库存表1
2 10 5 库存表2
2 20 5 库存表2
3 25 7 库存表1

录入入库商品结束后,如果汇总数量,修改库存表中汇总数量为原数量加新入库数量?
希望得到结果:
库存表2:
商品编号 汇总数量 其他
1 0 xx
2 30 xx
3 0 xx
库存表1:
商品编号 汇总数量 其他


1 30 xx
2 5 xx
3 37 xx
有没有简单的SQL语句能够实现?
如果用存储过程或触发器怎么实现?
因为表的名称事前并不能知道,如果把所有库存数量汇总显示,查询语句如何实现?
希望哪位能够帮我解决一下,提示一下解决的思路也可以,谢谢!

曾经用一个库存表记录所有部门汇总的库存数量,但部门较多,表中记录数达几十万条,
检索出其中一条记录,再处理部分相关事务时,耗时接近 1 秒,如果每个表控制在1万
至3万条商品记录时,处理耗时大约50毫秒左右(微机基本配置:512M,P4 3.0),
本人接触编程时间不长,不知道怎么样设计数据库更合理,请各位能否指点一二?

再次向各位先表示感谢!深深一鞠躬!


[解决办法]
用这个触发器,没有sqlserver 没有测试
CREATE TRIGGER tri_Insert
ON 入库表 AFTER INSERT AS
Declare @Sqlstr varchar(100)
set @Sqlstr= 'update '+i.库存表属性+ ' set 汇总数量=汇总数量+i.数量 from '+i.库存表属性+ ',inserted i where '+i.库存表属性+ '.商品编号=i.商品编号 ';
exec(@SqlStr);
[解决办法]
在入库表保存后,进行触发afterpost事件
在其中对数据进行处理添加。不过要添加标志,回为修改也会触发。
[解决办法]
嗯,触发器

读书人网 >.NET

热点推荐