请教sql问题,每个单号最近时间的状态,如图
a表b表
id状态时间id单号
110202101011001
220202101022001
310202101033002
420202101044002

用户m2896739 发布于 2021-8-11 10:50 (编辑于 2021-8-11 11:11)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
ColdmanLv6高级互助
发布于2021-8-11 11:12

SELECT

t1.单号,

t1.状态 

FROM

( SELECT a.id, a.状态, a.时间, b.单号 FROM a, b WHERE a.id = b.id ) t1,

(

SELECT

b.单号,

max( a.时间 ) 时间 

FROM

a,

WHERE

a.id = b.id 

GROUP BY

b.单号 

) t2 

WHERE

t1.单号 = t2.单号 

AND t1.时间 = t2.时间

最佳回答
0
BingChiHanLv5见习互助
发布于2021-8-11 11:08(编辑于 2021-8-11 11:13)

先将A表按ID、MAX(FDate) AS MaxFDate分组,B表通过ID和MaxFDate连接A表,得到状态。

最佳回答
0
让过去Lv6中级互助
发布于2021-8-11 11:14(编辑于 2021-8-11 11:15)

---

最佳回答
0
StudyYLLv6初级互助
发布于2021-8-11 11:14

Oracle:

select * from (select a.*,row_number()over(partition by a.单号 order by a.时间 desc)fn  from a) where fn=1

  • 5关注人数
  • 335浏览人数
  • 最后回答于:2021-8-11 11:15
    请选择关闭问题的原因
    确定 取消
    返回顶部