最近接了个项目,
出现了这样一个问题,
实在想不明白了,请各位高手之高手之高高手指导一下啊。
详述如下:
某月一号,进货A商品,100件,每件50元,
同月二号,进货A商品,80件,每件60元,
同月三号,发货A商品,50件,每件60元,
同月4号,发货A商品,120件,每件80元,
问,怎么在数据库,或者编程能实现求利润值啊。偶是用c#。net做的B/S结构的,
各位大侠,高手,高手之高手之高高手,能赏个办法或者语句下来啊!!!!!

解决方案 »

  1.   

    select sum(100件*每件50元) where date = 某月 group by 进货A商品
      

  2.   

    如果是先进先出原则:
    以下是程序中实现,你也可改成存储过程用游标实现
    select * from 库存明细表  where ... ordeby 入库时间 
    int Total = 0;
    int OutTotal = 100;
    int PerAmount = 0;
    for(int i=0;i<dt.Rows.Count;i++)
    {
        PerAmount = (int)dt.Rows["数量"];//该批次的数量
        if(Total  + PerAmount  >= OutTotal ) //多了
       {
          PerAmount  = OutTotal - Total  ; //这一批次只取一部分
       }else
       {
         Total  += PerAmount  
       }//根据批次的id和 PerAmount  更新数据库.
       
       
    }