加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

浅析 K3虚仓库龄分析

发布时间:2020-12-12 13:19:17 所属栏目:MsSql教程 来源:网络整理
导读:? ? ?K/3 V10.3 库存账龄分析表的原理 ? ? ?账龄分析表是按先进先出原则进行账龄分析,时间的判定方法是:以系统的当前日期为截止日期和单据日期进行比较(采用保质期管理的物料同样是以单据日期作为比较对象),得到存储天数;如果是初始化录入的余额,则以

? ? ?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 ? ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读