当前位置: 代码迷 >> Sql Server >> 进销存中库存计算的疑问,帮忙看看sql该如何写呢
  详细解决方案

进销存中库存计算的疑问,帮忙看看sql该如何写呢

热度:57   发布时间:2016-04-27 11:25:28.0
进销存中库存计算的疑问,帮忙看看sql该怎么写呢。
select a.BarCode 条码,a.Name 名称,a.DateInProduced 生产日期,(a.Number-SUM(b.Number)) 库存,a.WareHouse 仓库 
from Inventory a,InventoryOut b 
where a.DateInProduced = b.DateInProduced
group by b.DateInProduced,a.Number,a.BarCode,a.Name,a.DateInProduced,a.WareHouse 
having a.Number-SUM(b.Number)>0 
order by a.DateInProduced


这么写的话,只有在出库有入库有与之对应信息的时候才会查出数据,那如果一个商品只有入库还没有出库的时候也要有数据查出来该怎么修改一下呢。请教一下各位。谢谢了。

------解决方案--------------------
把两表的内连接改为左连接
------解决方案--------------------
探讨
try
SQL code
select a.BarCode 条码,a.Name 名称,a.DateInProduced 生产日期,(a.Number-isnull(SUM(b.Number),0)) 库存,a.WareHouse 仓库
from Inventory a
left join InventoryOut b
on a.DateInProduced = b.DateI……

------解决方案--------------------
left join 应该也解决不了问题,楼主可以把公共部分取出来做一个新表,然后去left join出入库分别的汇总。
------解决方案--------------------
SQL code
select a.BarCode 条码,a.Name 名称,a.DateInProduced 生产日期,(a.Number-isnull(SUM(b.Number),0)) 库存,a.WareHouse 仓库  from Inventory a left join InventoryOut b  on a.DateInProduced = b.DateInProducedgroup by b.DateInProduced,a.Number,a.BarCode,a.Name,a.DateInProduced,a.WareHouse  having a.Number-isnull(SUM(b.Number),0)>0  order by a.DateInProduced
  相关解决方案