关于计算先进先出库存成本有关问题

关于计算先进先出库存成本问题
请教各位大虾,我有一个明细表mingx
id                 商品代码               数量                 价格                   日期                   类别
1                     001                         10                       8                 2007-03-01           采购
2                     001                           8                     12                 2007-03-10           采购
3                     001                         12                       6                 2007-04-15           采购
4                     002                           5                     10                 2007-04-02           采购
5                     001                           2                     16                 2007-04-05           销售
6                     001                         18                     16                 2007-04-20           销售
7                     001                           5                     16                 2007-05-20           销售
我的目的是按照先进先出方法统截止某个日期的库存成本.比如到2007-05-20时,001卖出25个,剩下库存成本应为5*6元=30,002没卖出去,应是5*10=50,请问各位大虾怎么写sql语句或存储过程,急

------解决方案--------------------
declare @t table(id int,商品代码 varchar(4),数量 int,价格 int,日期 datetime,类别 varchar(8))
insert into @t select
1, '001 ', 10, 8, '2007-03-01 ', '采购 ' union all select
2, '001 ', 8, 12, '2007-03-10 ', '采购 ' union all select
3, '001 ', 12, 6, '2007-04-15 ', '采购 ' union all select
4, '002 ', 5, 10, '2007-04-02 ', '采购 ' union all select
5, '001 ', 2, 16, '2007-04-05 ', '销售 ' union all select