我是sql server.i的初学者,有两个表,TestshriMaster和Testshrifees。我需要一条记录,其中包含学生最后付费的详细信息。我写了一个查询,但有没有简单的方法来做到这一点。表格中的用户是“nixon”,“shri”,“nixon”。
答案 0 :(得分:1)
SQL Server支持标准SQL的窗口化聚合函数,在您需要的情况下需要ROW_NUMBER:
select ...
from TestshriMaster as sm
(
select *,
ROW_NUMBER() -- apply a ranking
OVER (PARTITION BY studentid -- for each student
ORDER BY feesdate DESC ) AS rn -- based on descending dates
from Testshrifees
) as sf
on sm.studentid = sf.stundentid
where sf.rn = 1 -- return only the latest row