且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

更新时间:2022-10-13 11:08:13


        本文是我在前一篇文章提到的关于先进先出存储过程的调用演示.
        有关数据库和存储过程的设计,请参阅使用存储过程实现进销存系统中的先进先出算法(1)——数据库与存储过程设计

     本文共用了9个测试用例   下载

  •     数据库初始化

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

  •  调用存储过程

 

  • --no.1进行入货操作,商品编号为1004191104,(售出价0,售出量0),成本价12.5,进货量100
    EXEC  pro_ProductSM @SorM='S',@pId='1004191104',@marketPrice=0, @marketNum=0, @stockPrice=12.5, @stockNum=100使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

             数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

           注解:第一次进货,stockNo=>2,  num1和cost1都变化了.

 

  • --no.2进行入货操作,商品编号为1004191104,(售出价0,售出量0),成本价13,进货量100
    EXEC pro_ProductSM @SorM='S',@pId='1004191104',@marketPrice=0, @marketNum=0, @stockPrice=13, @stockNum=100

    使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

        数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用             

          

  • --no.3进行入货操作,商品编号为1004191104,(售出价0,售出量0),成本价13.5,进货量85
    EXEC pro_ProductSM @SorM='S',@pId='1004191104',@marketPrice=0, @marketNum=0, @stockPrice=13.5, @stockNum=8

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

                  数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

 

 

--no.4进行入货操作,商品编号为1004191104,(售出价0,售出量0),成本价14,进货量60
EXEC pro_ProductSM @SorM='S',@pId='1004191104',@marketPrice=0, @marketNum=0,@stockPrice=14, @stockNum=60

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

 数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

 

 

--no.5进行入货操作,商品编号为1004191104,(售出价0,售出量0),成本价12,进货量80
EXEC pro_ProductSM @SorM='S',@pId='1004191104',@marketPrice=0, @marketNum=0, @stockPrice=12, @stockNum=80

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

 数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

 

 

 

--no.6进行入货操作,商品编号为1004191104,(售出价0,售出量0),成本价20,进货量10
EXEC pro_ProductSM @SorM='S',@pId='1004191104',@marketPrice=0, @marketNum=0, @stockPrice=20, @stockNum=10

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

注解,至此,所有仓库已满.

 

 

 

 

--no.7进行入货操作,商品编号为1004191104,(售出价0,售出量0),成本价75,进货量85

EXEC pro_ProductSM @SorM='S',@pId='1004191104',@marketPrice=0, @marketNum=0, @stockPrice=75, @stockNum=85

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

数据库没有更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

注解,此时不能继续进货了.

 

 

--no.8进行售货操作,商品编号为1004191104,售出价13,售出量90,(成本价0,进货量0
EXEC pro_ProductSM @SorM='M',@pId='1004191104',@marketPrice=13, @marketNum=90, @stockPrice=0, @stockNum=0

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

 数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

 这是一个出售操作,由于第一个仓库中已经可以满足需求,所以第一个仓库拿出90件,剩余10件,
利润计算     (13-12.5)*90 = 45.00 




 

 

 
--no.9进行售货操作,商品编号为1004191104,售出价13.5,售出量20,(成本价0,进货量0
EXEC pro_Pro

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用

数据库更新

使用存储过程实现进销存系统中的先进先出算法(2)——存储过程调用
这次由于第一个仓库中只有10个了,没有满足所需的20件,所以先把第一个仓库中的10件卖掉,然后第二个仓库在卖10件,并且marketNo=>2

利润计算     (13.5-12)*10 +(13.5-13)*10 = 10.00+5.00

 



本文转自 nileader 51CTO博客,原文链接:http://blog.51cto.com/nileader/304224,如需转载请自行联系原作者