sql >> Databasteknik >  >> RDS >> Sqlserver

Få sista posten från varje månad

Du kan använda funktionen ROW_NUMBER() här:

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

Det är bara det senaste betalningsdatumet för varje månad, om du ville ha det med LoanID skulle du lägga till LoanID i PARTITION BY lista. Om du var intresserad av att bevara band kan du använda RANK() istället för ROW_NUMBER()



  1. databasanslutning fungerar inte i jar, men fungerar i eclipse

  2. Tillåt användare att bara komma åt vissa tabeller i min innehållsleverantör

  3. Deklarera syntaxfel i MYSQL Workbench

  4. Allmänt fel:1008 OCISTmtExecute:ORA-01008:alla variabler är inte bundna