zoukankan      html  css  js  c++  java
  • 存货核算中的加权平均

    SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO

    ALTER  proc CaculateProfit_JiaQuanPingJun

    as

    --加权平均
    --
    创建虚拟表
    --
    1.计算出所有的进货成本

    /*
       drop table #tbl
       drop table #tbl2
    */



    declare     @期初数量 int,
            
    @期初单价 decimal(12,4)
            
            
    set @期初数量=20
            
    set @期初单价=200.00


    declare     @入库总数量 int,
            
    @入库总成本 decimal(12,4),
            
    @入库成本单价 decimal(12,4)
            
            
    set @入库总数量=0
            
    set @入库总成本=0
            
    set @入库成本单价=0
            
            
    select @入库总数量=sum(isnull(inputNum,0)),
                
    @入库总成本=sum(isnull(inputNum,0)*isnull(inputPrice,0))
                
    from dbo.InvertoryAccouter
            
    --计算出成本单价
            select @入库成本单价 = @入库总成本/@入库总数量


    create table #tbl(IODate  datetime default(getdate()),
                InputNum 
    int,
                InputUnitPrice 
    decimal(12,4),
                OutputNum 
    int,
                CostUnitPrice 
    decimal(12,4),
                SalesUnitPrice 
    decimal(12,4),
                Profit 
    decimal(12,4))


    select IODate,
        inputNum,
        inputPrice,
        outputNum,
        SalesPrice,
        
    case when (outputNum is not null 
                    
    and 
                    SalesPrice 
    is not null)
                
    then @入库成本单价
            
    else
                 
    null
            
        
    end CostUnitPrice
        
    into #tbl2
            
    from dbo.InvertoryAccouter
            
    order by IODate asc



    insert into #tbl
        (IODate,InputNum,InputUnitPrice,
        
    --InputCost,
        OutputNum,SalesUnitPrice,CostUnitPrice)

    select '2001-01-31 23:59:59',
        
    @期初数量,
        
    @期初单价,
        
    null,
        
    null,
        
    null
        
        
    union all
    select * 
        
    from #tbl2
        
    --select * from #tbl


    select   SUM(isnull(OutputNum,0)*
            (
    isnull(SalesUnitPrice,0)-isnull(CostUnitPrice,0)))
        
    from #tbl







    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO

  • 相关阅读:
    linux内存不足导致java进程被kill掉
    记一次centos服务器DNS引起的网络问题
    记consul集群和spring cloud集成遇到的问题。
    记一次url未encode遇到的问题
    十六周总结
    十五周总结
    计算最长英语单词链
    大道至简阅读笔记02
    大道至简阅读笔记01
    用户体验评价之搜狗输入法
  • 原文地址:https://www.cnblogs.com/Bruce_H21/p/839987.html
Copyright © 2011-2022 走看看