Se bem entendi, você quer o preço médio acumulado.
Essa abordagem usa subconsultas para calcular a quantidade total acumulada e o total acumulado pago. A proporção é o custo médio:
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
No SQL Server 2012, você pode fazer isso calculando diretamente somas cumulativas (deve ser mais eficiente). Você também pode fazer isso com
cross apply
, mas prefiro SQL padrão.