读书人

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

发布时间: 2012-09-03 09:48:39 作者: rapoo

进销存中库存计算的疑问,帮忙看看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 

读书人网 >SQL Server

热点推荐