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

Łączna suma programu SQL Server według grup

W SQL Server 2005 zrobiłbym to za pomocą skorelowanego podzapytania:

select dummy_id, date_registered, item_id, quantity, price,
       (select sum(quantity)
        from t t2
        where t2.item_id = t.item_id and
              t2.date_registered <= t.date_registered
       ) as cumulative
from table t;

Jeśli rzeczywiście chcesz dodać to do tabeli, musisz zmienić tabelę, aby dodać kolumnę, a następnie dokonać aktualizacji. Jeśli tabela zawiera wstawki i aktualizacje, musisz dodać wyzwalacz, aby była aktualna. Przejście przez zapytanie jest zdecydowanie łatwiejsze.

W SQL Server 2012 możesz to zrobić za pomocą składni:

select dummy_id, date_registered, item_id, quantity, price,
       sum(quantity) over (partition by item_id order by date_registered) as cumulative
from table t;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja formatu daty SQL Server

  2. Jak usunąć plik danych z bazy danych programu SQL Server (T-SQL)

  3. Instalacja klastra pracy awaryjnej serwera SQL -3

  4. Kod Entity-framework działa wolno przy wielokrotnym użyciu funkcji Include()

  5. Ukryte ulepszenia wydajności i zarządzania w SQL Server 2012/2014