oracle查询表单条记录空间,Oracle 多表连接查询取最近一条记录

SELECT PCC.CUSTNO custNo,T.PERSON_NO,T.CREATNAME visitorName,to_char(T.VISIT_TIME,'yyyy-MM-dd HH24:mi:ss') visitDate ,T.VISIT_CONTENT vistTxt,PCC.INVNM custName,PCC.BALANCE_TOTAL,PCC.BALANCE_PRODUCT FROM PRSP_CRM_CUSTINFO PCC

LEFT JOIN

(SELECT a.*,row_number() over(partition by a.PERSON_NO ORDER BY a.VISIT_TIME DESC) as rn FROM

(SELECT

PCV.VISIT_CONTENT,

PCV.VISIT_TIME,

PPD.INVNM CREATNAME,

PCMP.PERSON_NO

FROM

PRSP_CRM_MEETANDACTITY_PERSON PCMP

LEFT JOIN

PRSP_CRM_VISIT PCV

ON

PCV.SERIAL_VISIT_NO=PCMP.SERIAL_REFREN_NO

LEFT JOIN

PRSP_CRM_CUSTINFO PPD

ON

PPD.CUSTNO=PCV.CREATE_NO

WHERE PCMP.MEET_TYPE='1' AND PCMP.PERSON_TYPE='2' AND PCMP.DELETE_FLG='0') a ) T

ON PCC.CUSTNO=T.PERSON_NO and t.rn=1

where 1=1

1.首先 写一个 连接查询语句: 比如有时间的表排序

2、 通过这个函数  select a.* row_number() over(partition by  分组的字段 order by 排序时间 desc) as rn from  (结果集) a

2. 显示的结果

299ab83db036518241f90010178b02fc.png

这样就会把第一条第二条进行排序。。 我们 写一个条件 rn=1 这样就是取最近一条了。。

最后去关联你想要的表就好了。。

遇到的问题:

81f8d012ff48023f810da483b6e75609.png

如果其他时间为空 那么他的排序就是 为空的时间排再前面 如何解决呢?

df61da80321fd588456d4ace3a6fc7d9.png

这里使用上面的办法解决。。。

效果图:

6879c53172cae1df316aa8109800d03d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值