用sql怎么实现库存的先进先出?

用sql怎么实现库存的先进先出?,第1张

create table 表1(货号 varchar(20),批次 int ,数量 int)

create table 表2(货号 varchar(20) ,数量 int)

/*------------------------------*/

insert into 表1

select '001', 1, 100 union all

select '001', 2, 200 union all

select '001', 3, 300

/*------------------------------*/

insert into 表2

select '001', 400

/*------------------------------*/

select * from 表1

select * from 表2

/*------------------------------*/

select t1.货号,t1.批次,

case when ((select isnull(sum(数量),0) from 表1 t3 where t3.货号=t1.货号 and t3.批次<t1.批次)-isnull(t2.new_数量,0))<0

then case when ((select sum(数量) from 表1 t4 where t4.货号=t1.货号 and t4.批次<=t1.批次)-isnull(t2.new_数量,0))<0 then 0

else ((select sum(数量) from 表1 t4 where t4.货号=t1.货号 and t4.批次<=t1.批次)-isnull(t2.new_数量,0))

end

else t1.数量

end as 批次剩余库存

from 表1 t1

left join (select 货号,sum(数量) as new_数量 from 表2 group by 货号) t2

on t1.货号=t2.货号

/*------------------------------*/

PS:上面将null转换为0的函数为isnull,是SQL SERVER下的函数,你只要根据你的数据转换为对应函数就可以了,如oracle是nvl,mysql是ifnull等等.

有问题hi我

“先进先出”就是要从大量货品当中,把先进入仓库的货品提取出去。所以如果大量积压的库存减少了的话。那么“先进先出”也就相应的容易了。所以首先考虑减少库存。

说到安全性,企业需要确保所选库存软件平台具有很多安全性功能和选项。需要进行尽职调查以确定软件开发人员如何收集和存储信息,以及哪种额外的加密层或数据备份层可以确保企业的数据安全。

好的软件可以实现需求一体化,比如管易云,它是金蝶集团旗下专注提供企业电商管理云服务的子品牌,服务超过110000家品牌企业客户。目前拥有:苍穹电商云、B2C电商云、电商ERP、订单管理系统、仓储管理系统、前端商城建站等SaaS软件产品及服务,适用于全行业多场景,涵盖电商业务全流程。

传统的数据库除了SQL语义外,还要保证transaction的ACID,而要同时满足高一致性和事务 *** 作的要求是很难实现高可伸缩性的。因而才会有NoSQL的出现,它们牺牲了部分SQL和事务的语义、降低一致性要求,以实现高可伸缩性的系统。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10075620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存