一个极度复杂的递归问题,高手请进....................................
财务方面的成本结算方法(加权平均法)
有一个表 #t 如下:
产品id 产品名称 期初库存 单价 日期
1 aa 100 5 2007-1-1
有一个表 #p 如下:
产品id 产品名称 购进数量 单价 日期
1 aa 10 5 2007-1-2
1 aa 20 6 2007-1-10
1 aa 5 7 2007-2-10
1 aa 10 6 2007-2-20
有一个表 #m 如下:
产品id 产品名称 销售数量 单价 日期
1 aa 5 8 2007-1-3
1 aa 10 8 2007-1-11
1 aa 10 9 2007-2-5
1 aa 5 8 2007-2-22
1月份的销售成本=(5+10)*(100*5+10*5+20*6)/(100+10+20)=15*5.15
1月末的库存数量=100+10+20-5-10=115
1月末的库存单价=(100*5+10*5+20*6)/(100+10+20)=5.15
2月份的销售成本=(10+5)*(115*5.15+5*7+10*6)/(115+5+10)=15*5.28
2月末的库存数量=115+5+10-10-5=115
2月末的库存单价=(115*5.15+5*7+10*6)/(100+5+10)=5.28
依次类推
3月末的库存单价=(2月末库存单价*2月末库存数量+3月购进数量*3月购进单价)/
( 2月末库存数量+3月购进数量)
3月末的库存数量=2月末库存数量+3月购进数量-3月销售数量
3月份的销售成本=3月销售数量*3月末的库存单价
请问世这样的期末库存,库存单价,销售成本用什么方法得到
------解决方案--------------------可以做过存储过程
建议先建立一个临时表,保存上个月计算的结果,
create table #t(产品id int, 产品名称 nvarchar(10), 期初库存 int , 单价 numeric(10,4) , 日期 datetime)
insert into #t select 1 , 'aa ', 100 , 5 , '2007-1-1 '
create table #p (产品id int , 产品名称 nvarchar(10), 购进数量 int , 单价 numeric(10,4) , 日期 datetime)
insert into #p select 1 , 'aa ' , 10 , 5 , '2007-1-2 '
union select 1 , 'aa ' , 20 , 6 , '2007-1-10 '
union select 1 , 'aa ' , 5 , 7 , '2007-2-10 '
union select 1 , 'aa ' , 10 , 6 , '2007-2-20 '
create table #m (产品id int , 产品名称 nvarchar(10), 销售数量 int , 单价 numeric(10,4) , 日期 datetime)
insert into #m select 1 , 'aa '