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

Uruchamianie sum w widoku SQL

Użyłem ROW_NUMBER ORAZ CTE od 2008 roku

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. Jak podzielić okno zapytania w SQL Server Management Studio (SSMS) — samouczek SQL Server / TSQL część 13

  2. Jak wyświetlić pasek postępu podczas wykonywania dużego SQLCommand VB.Net?

  3. Czy instrukcja WITH jest wykonywana raz na zapytanie, czy raz na wiersz?

  4. Jak uzyskać kalendarz kwartał z daty w TSQL?

  5. Problem z SSIS Nie udało się odszyfrować chronionego węzła XML