1. 程式人生 > >MSSQL分組取後每一組的最新一條記錄

MSSQL分組取後每一組的最新一條記錄

top 分享 mssql 方法 esc box nan 技術分享 -c

數據庫中二張表,用戶表和獎金記錄表,獎金記錄表中一個用戶有多條信息,有一個生效時間,現在要查詢:

獎金生效時間在三天前,每個用戶取最新一條獎金記錄,且用戶末鎖定

以前用的方法是直接寫在C#代碼中的:

for(所有末鎖定用戶)

查詢獎金記錄表 top 1 where uid=??? order by 生效時間 desc

if(上面查詢的記錄生效時間在三天前)

輸出

今天花了大部分時間研究了一下,終於找到一條SQL語句就可以把結果查出來的方法:

技術分享

那個row_number函數在MSSQL2008以上才會有!!!

MSSQL分組取後每一組的最新一條記錄