sql >> Databáze >  >> RDS >> Sqlserver

Výpočet trvalých vážených průměrných nákladů SQL Server 2008

Pokud tomu dobře rozumím, chcete kumulativní průměrnou cenu.

Tento přístup používá dílčí dotazy k výpočtu kumulativního celkového množství a kumulativního součtu zaplaceného. Poměr je průměrná cena:

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

V SQL Server 2012 to můžete provést přímým výpočtem kumulativních součtů (mělo by to být efektivnější). Můžete to udělat také pomocí cross apply , ale preferuji standardní SQL.




  1. Instalace Django mysqlclient

  2. Můžete používat Microsoft Entity Framework s Oracle?

  3. Postgresql - existuje způsob, jak zakázat zobrazování příkazů INSERT při čtení ze souboru?

  4. problém s kontingenční tabulkou mysql