數據庫中二張表,用戶表和獎金記錄表,獎金記錄表中一個用戶有多條信息,有一個生效時間,現在要查詢:
獎金生效時間在三天前,每個用戶取最新一條獎金記錄,且用戶末鎖定
以前用的方法是直接寫在C#代碼中的:
for(所有末鎖定用戶)
?查詢獎金記錄表 top 1 where uid=??? order by 生效時間 desc
?if(上面查詢的記錄生效時間在三天前)
? 輸出
?
今天花了大部分時間研究了一下,終于找到一條SQL語句就可以把結果查出來的方法:
那個row_number函數在MSSQL2008以上才會有!!!