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

Menjalankan total dalam tampilan SQL

Saya menggunakan ROW_NUMBER DAN CTE sejak Anda berada di tahun 2008

WITH transactionTotal AS
(
   SELECT t.Created, t.Description, t.Credit, t.Debit, t.TransDate, t.TransactionID, a.AccountID
      , ROW_NUMBER() OVER (ORDER BY TransDate ASC) AS RowNumber
      , ( ISNULL(t.Credit, 0) - ISNULL(t.Debit, 0) ) AS TransactionTotal
   FROM dbo.Transactions AS t 
   INNER JOIN dbo.BankAccounts AS a ON t.AccountID = a.AccountID
)
SELECT t.Created, t.Description, t.Credit, t.Debit, t.TransDate, t.TransactionID, t.AccountID
   , ( SELECT SUM(tt.TransactionTotal)
       FROM transactionTotal AS tt
       WHERE tt.RowNumber <= t.RowNumber) AS RunningTotal
FROM transactionTotal AS t
LEFT JOIN transactionTotal AS tt ON t.RowNumber = tt.RowNumber + 1
ORDER BY t.TransDate DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan Daftar Zona Waktu yang Didukung di SQL Server (T-SQL)

  2. Pilih catatan terakhir dari tabel menggunakan grup menurut

  3. SQL Server membuat tabel dengan indeks berkerumun tanpa kunci utama

  4. Penanganan Kesalahan dengan Kursor di SQL

  5. Hapus catatan dalam Alih-alih Hapus pemicu