Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изчисление на постоянна среднопретеглена цена SQL Server 2008

Ако разбирам правилно, искате кумулативната средна цена.

Този подход използва подзаявки за изчисляване на кумулативното общо количество и кумулативното общо платено. Съотношението е средната цена:

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Забравена парола за SQL Server

  2. Как да създадете пълно архивиране на базата данни на SQL Server 2008 програмно в желаната папка

  3. Намерете име на таблица във всички обекти на всички бази данни

  4. изберете един и същ ден всеки месец за следващите 5 години с помощта на SQL?

  5. Текстът, ntext и графичните данни> типовете не могат да се сравняват или сортират, освен когато се използва оператор IS NULL или LIKE>