关于一次数据库知识的综合运用
用户需求
1. 采购可以动态转换成我们用料计划给供应商, 避免供应商完全依赖我们的欠料表,才生产, 造成来料不及时。
2. 物控在此基础上, 就可以加严控制来料, 避免仓库和库存材料积压。
解决方案:
(1)根据工单需求,提除不发料作为主数据。
(2)利用with实现待验数量集,预计入库集,待扣数量集等
(3)自定义函数获取库存数量
(4)关联数据表获取安全库存
(5)产生主数据后进行分类汇总后插入临时表1,汇总未领数量
利用游标,针对同品号,不同预计领料日。进行逻辑计算
(第一行):@库存数量+@待验数量-@未领用量-@安全库存-@待扣数量
后续:–若结余数量小余0 则按未领用量计算欠料量
(6)存入表变量,表变量关联其他数据后存入临时表2
(7)临时表2利用Pivot转置成动态列,其中需要利用拼接SQL和函数STUFF XML PATH 获取列。
最后封装成存储过程,提供给程序调用。
主要知识点:
wtih as 用法,自定义函数,游标,临时表,表变量,pivot转置,Stuff XML PATH,动态拼接SQL,封装存储过程。
DECLARE @EndDate