合作伙伴社区股票代码:838758石基信息成员企业
首页>案例中心>商锐9.7关于商品库存异常的常见问题解析
2021-11-10 17:29  |  
438

案例1:

1、 在商品库存查询中查询到的库存数据,与实时库存报表查询到的库存不一致。


image.png


解决方法:

1)商品库存查询中的库存值是日结后更新的,根据商品的销售数据冲销计算而来,所以在没有日结的情况下,商品库存查询中的库存值不会变动;

2)而实时库存报表,则是按最后一次的日结计算的库存,与已经上传到后台没有冲销的销售数量, 进行冲减而得到的计算值;

3)在前台有销售没有日结情况下,商品库存查询与实时库存报表不一致为正常情况;

4)由于前台销售存在断网,或者销售数据传输不及时的情况,实时库存的计算值,只作为一个参考值,实际库存数据还是以日结后的商品库存查询 为准。


案例2:

2、 历史库存查询库存变动。例如今天和昨天在历史库存查询中,查询一个商品在08-31这天的库存数量不一致。


image.png


解决方法:

历史库存查询中的库存数量是根据日进销存的结存数量取值,当商品有之前的断网数据上传,或者做采购补录单,即会重算之前的结存,从而导致历史库存查询变动,例如商品A在2020-08-30这天的结余库存100,今天做了采购补录单,补录时间为2020-08-30之前,补录数量为50,正常日结并进行结转,这样在昨天的历史库存查询中,查询到A在2020-08-30的库存数量100 ,而今天日结后之后查询则为150。

 

案例3:

3、认为软件中查询到到商品库存与实际库存不一致。

软件作为进销存数据的录入工具,只有录入过系统才会生成相应数据,当客户有感觉库存有异常时,首先要先确认是否日结,只用日结后,系统才会对相应业务进行冲销,计算进销存数据,确认有正常日结的情况下,再到出入库明细中检查商品的所有出入库记录,将时间范围拉大覆盖到该商品所有业务时间范围进行查询。

核查标准:库存数量= 所有进行数量 –所有出项数量

1)若数量一致,则说明软件计算正常,若依旧认为库存不对,则是有可能是商品实际入库后,单据没有录入(可使用采购补录单补录),或者前台有断网销售没有上传(在前台使用F12-F5按时间检索上传)

2)相应相应数量不一致,则检查这个商品在出入库明细中的最后一比记录的库存结余值。


  x1.jpg


3)由查询可知出入库明细的所有进项数量与出项数差额,与商品最后一比业务的结余数量不一致,可判断是出入库的结余出问题,而导致库存记录异常,检查所有出入库明细中的结余。

核查标准:本次库存结余=上一次的结余+本次入项数量-本次出库数量


x2.jpg


3)根据截图示例,查询可知在2020-01-01之前的结余数量没有累加计算,导致后面的结余全部计算错误,而在2019-12-11的采购入库之后,结余计算开始正常,可以判断该问题是商品在没有采购之前的业务有问题,这些业务的结余计算异常,同时影响商品库存记录。此情况使用语句重算商品的库存数量和出入库结余即可。相应重算语句必须要在日结后进行执行,并请注意备份相应数据库 。

注:此条案例解决方法仅供参考,不要按此方法直接给客户执行语句,最终sql语句的执行是经过技术支持工程师分析客户数据后,找到具体原因给出的方案。目的是让伙伴们了解因数据异常,导致库存不准确是如何进行排查分析的。


--以下语句以商慧版本为例,商锐产品调整数据库名以及门店编码为两位。

--1,查询总部0000库存结余计算异常的商品,门店值可按需调整。

use hbposepro
go
select  t_im_branch_stock.item_no, t_im_branch_stock.stock_qty ,aaa.qty
into #a from
(select item_no,branch_no,
sum(case db_no when '+' then real_qty when '-' then -real_qty    end )qty
from t_im_flow where trans_no!='PC' AND trans_no!='KB'
group by item_no,branch_no) aaa,t_im_branch_stock
where t_im_branch_stock.item_no = aaa.item_no and t_im_branch_stock.branch_no = aaa.branch_no
and t_im_branch_stock.stock_qty!=aaa.qty

and aaa.branch_no like '0000%'

 

---2,根据查询出来的异常商品货号修正出入库结余:
use hbposepro
go
declare @flow_id numeric(14, 0)
declare @branch_no char(6)
declare @item_no varchar(20)
-------游标生成
declare cur_row cursor for
select  item_no, branch_no,flow_id   from t_im_flow    where item_no in (select item_no from #a) and branch_no like '0000%'
open cur_row
fetch cur_row into @item_no,@branch_no,@flow_id
while @@fetch_status=0
begin

update  t_im_flow set pre_qnty=(select  sum(case when db_no = '+' then real_qty  when db_no = '-' then -real_qty else real_qty end)  From t_im_flow 
where 
item_no=@item_no  and branch_no=@branch_no and trans_no not in ('PC','KB') and flow_id<=@flow_id)
where 
flow_id=@flow_id

fetch next from cur_row into @item_no,@branch_no,@flow_id
end

close cur_row
deallocate cur_row


----3,最后根据出入库结余修正库存数量
use hbposepro
go
update t_im_branch_stock  set stock_qty=a.qty
from  t_im_branch_stock b  , #a  a
where a.item_no=b.item_no and b.branch_no like '0000%'


分享:

市场活动
其他新闻
产品案例


快速询价

在线咨询

在线留言