微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浅析 K3虚仓库龄分析

     K/3 V10.3 库存账龄分析表的原理

     账龄分析表是按先进先出原则进行账龄分析,时间的判定方法是:以系统的当前日期为截止日期和单据日期进行比较(采用保质期管理的物料同样是以单据日期作为比较对象),得到存储天数;如果是初始化录入的余额,则以初始化录入的入库日期为比较对象,得到存储天数。调拨单参与分析必须选择过滤条件:调拨单参与账龄分析。单价依据,系统提供了计划价、采购单价、最新入库价、最新出库价、上期最新出库价、期初余额加权平均价6种计价方式供选择。

     在K3 v12.2对虚仓没有现成的虚仓库龄分析表,现在有这个需求,试了做了一下这个报表,可能有问题,请高手看到这个帮忙指正,谢谢!

     方法

     1、将虚仓入库单按时间段分类汇总,例如:30天以内,30-60天,……180天以上,      

     2、用现有库存去依次减去30天以内,30-60天,……180天以上的分段数据,得到最终的报表即为库龄分析表。


具体做法及代码

--虚仓入库单按时间段分类创建视图,  
drop view vw_pokl    
create view vw_pokl  as    
select b.fitemid,   
b.fdcstockid,   
sum(case when datediff(d,a.fcheckdate,getdate()) <= 30 then b.fqty else 0 end) as 'f30day',getdate()) > 30 and datediff(d,getdate()) <= 60 then b.fqty else 0 end) as 'f60day',getdate()) > 60 and datediff(d,getdate()) <= 90 then b.fqty else 0 end) as 'f90day',getdate()) > 90 and datediff(d,getdate()) <= 120 then b.fqty else 0 end)  as'f120day',getdate()) > 120 and datediff(d,getdate()) <= 180 then b.fqty else 0 end)  as'f180day',getdate()) > 180  then b.fqty else 0 end)  as'up180day'    
from zpstockbill a,   
zpstockbillentry b    
where a.finterid = b.finterid    
and a.ftrantype = 6    
and b.fitemid = 30453    
group by b.fitemid,b.fdcstockid



第二步:

select --a.fitemid, 
--b.fstockid,   
c.fnumber as '物料编码',   
c.fname as '物料名称',   
c.fmodel as '规格型号',   
d.fnumber as '仓库代码',   
d.fname as '仓库名称',   
b.fqty as '库存数量',   
case when b.fqty-a.f30day >= 0  then a.f30day else  b.fqty  end as '30天以内',   
case when b.fqty-a.f30day-a.f60day >= 0 then a.f60day when b.fqty >= a.f30day then  b.fqty-a.f30day else 0 end as '30-60天',   
case when b.fqty-a.f30day-a.f60day-a.f90day >= 0 then a.f90day when  b.fqty-a.f30day-a.f60day >= 0 then b.fqty-a.f30day-a.f60day else 0 end as '60-90天',   
case when b.fqty-a.f30day-a.f60day-a.f90day-a.f120day >= 0 then a.f120day when b.fqty-a.f30day-a.f60day-a.f90day >= 0 then b.fqty-a.f30day-a.f60day-a.f90day else 0 end as '90-120天',   
case when b.fqty-a.f30day-a.f60day-a.f90day-a.f120day-a.f180day >= 0 then a.f180day when b.fqty-a.f30day-a.f60day-a.f90day-a.f120day >= 0 then b.fqty-a.f30day-a.f60day-a.f90day-a.f120day else 0 end as '120天-180天',   
case when b.fqty-a.f30day-a.f60day-a.f90day-a.f120day-a.f180day-up180day >= 0 then a.up180day when b.fqty-a.f30day-a.f60day-a.f90day-a.f120day-f180day >= 0 then b.fqty-a.f30day-a.f60day-a.f90day-a.f120day-a.f180day else 0 end as '180天以上'    
from vw_pokl a,--视图    
poinventory b, --代管仓即时库存表    
t_icitem c,    --物料表    
t_stock d       --仓库表    
where a.fitemid = b.fitemid    
and a.fdcstockid = b.fstockid    
and c.fitemid = a.fitemid    
and d.fitemid = a.fdcstockid    
order by 4,1



--校验数据   select *    from poinventory b,    vw_pokl a    where a.fitemid = b.fitemid    and fdcstockid = b.fstockid    --order by fqty desc    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐