अगर मैं सही ढंग से समझूं, तो आप संचयी औसत मूल्य चाहते हैं।
यह दृष्टिकोण संचयी कुल मात्रा और भुगतान किए गए संचयी कुल की गणना करने के लिए उपश्रेणियों का उपयोग करता है। अनुपात औसत लागत है:
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 सर्वर 2012 में, आप सीधे संचयी रकम की गणना करके ऐसा कर सकते हैं (अधिक कुशल होना चाहिए)। आप इसे cross apply
. के साथ भी कर सकते हैं , लेकिन मुझे मानक SQL पसंद है।