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

Nhận bản ghi cuối cùng từ mỗi tháng

Bạn có thể sử dụng hàm ROW_NUMBER () tại đây:

SELECT *
FROM (SELECT lp.ID, lp.LoanID, lp.PaymentDate
          , ROW_NUMBER() OVER (PARTITION BY YEAR(PaymentDate), Month(PaymentDate) ORDER BY PaymentDate DESC) 'RowRank'
      FROM LoanPayments lp 
     )sub
WHERE RowRank = 1

Đó chỉ là Ngày thanh toán gần đây nhất cho mỗi tháng, nếu bạn muốn bằng LoanID, bạn sẽ thêm LoanID vào PARTITION BY danh sách. Nếu bạn quan tâm đến việc duy trì mối quan hệ, bạn có thể sử dụng RANK() thay vì ROW_NUMBER()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OBJECTPROPERTY () so với OBJECTPROPERTYEX () trong SQL Server:Sự khác biệt là gì?

  2. Đổi tên khóa ngoại trong SQL Server bằng T-SQL

  3. Chỉ thay thế phiên bản thứ n của ký tự

  4. Cách nhanh nhất để tìm các tính năng không dùng nữa vẫn được sử dụng trong phiên bản máy chủ SQL (Ví dụ T-SQL)

  5. Lỗi SQL Server 206:Xung đột kiểu toán hạng