Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL - tổng số đang chạy khi dữ liệu đã được nhóm lại

Cách tính tổng tích lũy theo tiêu chuẩn ANSI là:

select t.*, sum(totalpmtamt) over (order by mdate) as runningsum
from #testdata t
order by t.mdate;

Không phải tất cả các cơ sở dữ liệu đều hỗ trợ chức năng này.

Nếu cơ sở dữ liệu của bạn không hỗ trợ chức năng đó, tôi sẽ tìm một truy vấn con tương quan:

select t.*,
       (select sum(t2.totalpmtamt)
        from #testdata t2
        where t2.mdate <= t.mdate
       ) as runningsum
from #testdata
order by t.mdate;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng tạm thời sử dụng JDBC với null ResultSet

  2. Làm thế nào để thực hiện một GROUP BY phân biệt chữ hoa chữ thường?

  3. SQL Server 2008 XPath

  4. Cách sử dụng GOTO trong SQL Server

  5. Làm cách nào để chèn một bảng dữ liệu vào bảng cơ sở dữ liệu SQL Server?