sql多表分组查询并排序的问题
假设有三张表:tb1sIDnametb2sIDtIDnametb3tIDnametimetb2和tb1根据sID关联,tb3和tb2根据tID关联我想写一个sql语句:根...
假设有三张表:
tb1
sID name
tb2
sID tID name
tb3
tID name time
tb2和tb1根据sID关联,tb3和tb2根据tID关联
我想写一个sql语句:根据tb1的sID分组分别得到tID,然后获取各sID下的tID,最后根据tb3的time(smalldatetime)排序得到各分组的第一个tb3的name的数据(就是我想取到各Sid下的最后时间的name) 展开
tb1
sID name
tb2
sID tID name
tb3
tID name time
tb2和tb1根据sID关联,tb3和tb2根据tID关联
我想写一个sql语句:根据tb1的sID分组分别得到tID,然后获取各sID下的tID,最后根据tb3的time(smalldatetime)排序得到各分组的第一个tb3的name的数据(就是我想取到各Sid下的最后时间的name) 展开
展开全部
select sID,name,time from (
select tb1.sID,tb2.tID,tb3.name,tb3.time
,row_number() over (partition by tb1.sID order by tb3.time desc) seq
from tb1 a
inner join tb2 b on a.sID=b.sID
inner join tb3 c on b.tID=c.tID
) t where seq=1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询