Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara menghitung total berjalan dalam SQL tanpa menggunakan kursor?

Anda mungkin ingin melihat pembaruan untuk solusi variabel lokal di sini:http://geekswithblogs.net/Rhames/archive/2008/10/28/calculating-running-totals-in-sql-server-2005--- the-optimal.aspx

DECLARE @SalesTbl TABLE (DayCount smallint, Sales money, RunningTotal money)

DECLARE @RunningTotal money

SET @RunningTotal = 0

INSERT INTO @SalesTbl 
SELECT DayCount, Sales, null
FROM Sales
ORDER BY DayCount

UPDATE @SalesTbl
SET @RunningTotal = RunningTotal = @RunningTotal + Sales
FROM @SalesTbl

SELECT * FROM @SalesTbl

Mengungguli semua metode lain, tetapi memiliki beberapa keraguan tentang urutan baris yang dijamin. Tampaknya berfungsi dengan baik ketika tabel temp diindeks..

  • Sub-kueri bertingkat 9300 md
  • Gabung mandiri 6100 md
  • Kursor 400 md
  • Perbarui ke variabel lokal 140 md


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ukuran maksimum untuk Kueri SQL Server? klausa IN? Apakah ada Pendekatan yang Lebih Baik?

  2. Karakter Escape di SQL Server

  3. Cara mengambil nama bidang dari tabel sementara (SQL Server 2008)

  4. 3 Cara Mendapatkan Hari Pertama Bulan Ini di SQL Server

  5. Beberapa baris ke satu nilai yang dipisahkan koma di Sql Server