Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете последния запис от всеки месец

Можете да използвате функцията ROW_NUMBER() тук:

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

Това е само най-скорошната дата на плащане за всеки месец, ако искате да я използвате по LoanID, бихте добавили LoanID към PARTITION BY списък. Ако се интересувате от запазване на връзките, можете да използвате RANK() вместо 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. Как да активирате CDC за набор от таблици ИЛИ да активирате за всички таблици в база данни в SQL Server - урок за SQL Server

  2. T-SQL съхранена процедура, която приема множество Id стойности

  3. Съхранявайте отговорите в sql таблица с уникален идентификатор и съхранявайте всеки отговор в колони

  4. Обединете 2 бази данни на SQL Server

  5. Как да експортирате данни като CSV формат от SQL Server с помощта на sqlcmd?