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

  • 相关阅读:
    CentOS 6.5 伪分布式 安装 hadoop 2.6.0
    单例模式的思想简介
    最有二叉树 哈夫曼树
    二叉树2
    二叉树1
    栈与队列
    线性表
    字符串模式匹配KMP算法
    数据结构(四) 查找 排序
    数据结构(三) 图
  • 原文地址:https://www.cnblogs.com/Bruce_H21/p/839987.html
Copyright © 2011-2022 走看看