以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]库存问题  (http://www.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
--  
 非常感谢甜老师   问题解决了