Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Obliczanie wieczystego średniego ważonego kosztu SQL Server 2008

Jeśli dobrze rozumiem, chcesz uzyskać łączną średnią cenę.

W tym podejściu są używane podzapytania do obliczania skumulowanej całkowitej ilości i skumulowanej sumy zapłaconej. Stosunek to średni koszt:

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

W SQL Server 2012 można to zrobić, bezpośrednio obliczając sumy skumulowane (powinno to być bardziej wydajne). Możesz to również zrobić za pomocą cross apply , ale wolę standardowy SQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pula połączeń jest wolniejsza niż utrzymywanie jednego połączenia otwartego

  2. Zmuszając kod, aby zawsze inicjować nieistniejącą bazę danych?

  3. jakie są ustawienia rejestru, aby włączyć TCP w SQL Server 2005 i 2008?

  4. Jak połączyć ze sobą dwa stoły o tej samej liczbie rzędów według ich kolejności?

  5. Sekwencja wykonania klauzuli Group By, Having i Where w SQL Server?