0

我想计算库存的永久加权平均成本。我试图了解以下链接 Inventory Average Cost Calculation in SQL的解决方案, 但无法获得它,这对我来说很复杂。

这是我的数据库详细信息。

Purch_ID  Item_ID   QTY    Unit_Price   

 01         1       10       10               
 02         2       10       20               
 03         3       20       15              
 04         2       10       20               
 05         1       10       18              
 06         2       25       17      

我想使用以下公式计算每次购买后的加权平均成本

((old_stock x Old unit price)+(New_Purchase_qty x New unit price))/(old stock qty + new purchase qty)

请问有什么建议吗?

4

1 回答 1

2

如果我理解正确,您需要累积平均价格。

这种方法使用子查询来计算累计总量和累计支付总额。该比率是平均成本:

select t.*, cumepaid / cumeqty as avg_cost
from (select t.*,
             (select SUM(qty) from t t2 where t2.item_id = t.item_id and t2.purch_id <= t.purch_id
             ) as cumeqty,
             (select SUM(qty*unit_price) from t t2 where t2.item_id = t.item_id and t2.purch_id <= t.purch_id
             ) as cumepaid
      from t
     ) t

在 SQL Server 2012 中,您可以通过直接计算累积和来做到这一点(应该更有效)。您也可以使用 来执行此操作cross apply,但我更喜欢标准 SQL。

于 2013-02-06T22:43:33.483 回答