以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]库存问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=110622) |
-- 作者:q1156741089 -- 发布时间:2017/12/6 14:00:00 -- [求助]库存问题 用SQLSERVER 做库存数据库,有库存表,出库表,入库表, 库存表的库存数量 =累计入库数 -累计出库树 。请问sql语句怎么写 |
-- 作者:有点甜 -- 发布时间:2017/12/6 14:44:00 -- 你要写update语句?
1、得到表1 select 商品编号, sum(入库数) as 累计入库 from {入库表} group by 商品编号
2、得到表2 select 商品编号, sum(出库数) as 累计出库 from {出库表} group by 商品编号
3、update 库存表 set 库存表.库存数量 = 表1.累计入库-表2.累计出库 from 表1,表2,库存表 where 表1.商品编号=库存表.商品编号 and 表2.商品编号=库存表.商品编号 [此贴子已经被作者于2017/12/7 15:16:52编辑过]
|
-- 作者:q1156741089 -- 发布时间:2017/12/6 14:50:00 -- 是的 谢谢甜老师 我去试一下 |
-- 作者:q1156741089 -- 发布时间:2017/12/7 14:46:00 -- 代码怎么发不出来? |
-- 作者:有点甜 -- 发布时间:2017/12/7 14:48:00 -- sql语句,关键字 select、from、update 等,需要设置成斜体,才能发,看2楼。
贴出你的sql语句,报什么错? |
-- 作者:q1156741089 -- 发布时间:2017/12/7 14:55:00 -- [此贴子已经被作者于2017/12/7 14:59:43编辑过]
|
-- 作者:q1156741089 -- 发布时间:2017/12/7 15:02:00 -- 请问老师 需要将通过sql查询到的入库数量 和出库数量进行读取吗? |
-- 作者:q1156741089 -- 发布时间:2017/12/7 15:04:00 -- Try Dim Count As Integer Connections("office_sql").BeginTransaction() \'开始事务 Dim cmd As new SQLCommand cmd.C cmd.CommandText = "Sele ct 物资名称, sum(数量) As 累计入库 from {物资明细} as a where 明细分类 = \'入库\' group by 物资名称 " cmd.ExecuteScalar() cmd.CommandText = "Sel ect 物资名称, sum(数量) As 累计出库 from {物资明细} as b where 明细分类 = \'出库\' group by 物资名称" cmd.ExecuteScalar() cmd.CommandText = "upd ate 库存物资 set 库存物资.库存数量 = a.累计入库-b.累计出库 from a,b,库存物资 where a.物资名称=库存物资.物资名称 and b.物资名称=库存物资.物资名称 " cmd.ExecuteNonQuery() Connections("office_sql").Commit \'提交事务,所有操作生效 Catch ex As Exception \'如果出错 Connections("office_sql").Rollback() \'回滚事务,撤销所有操作 End Try [此贴子已经被作者于2017/12/7 15:04:04编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/12/7 15:21:00 -- 合成1句sql语句
update c set c.库存数量 = a.累计入库-b.累计出库 from (select 商品编号, sum(入库数) as 累计入库 from 入库表 group by 商品编号) a, (select 商品编号, sum(出库数) as 累计出库 from 出库表 group by 商品编号) b,库存表 c where a.商品编号=c.商品编号 and b.商品编号=c.商品编号 |
-- 作者:q1156741089 -- 发布时间:2017/12/7 15:43:00 -- 非常感谢甜老师 问题解决了 |