博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 多表连接查询取最近一条记录
阅读量:6135 次
发布时间:2019-06-21

本文共 1076 字,大约阅读时间需要 3 分钟。

  hot3.png

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. 显示的结果

135905_uwJO_2886458.png

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

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

 

遇到的问题:

140756_xdcQ_2886458.png

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

140526_jNFU_2886458.png

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

效果图:

140830_UWH8_2886458.png

转载于:https://my.oschina.net/960823/blog/1568783

你可能感兴趣的文章
gRPC快速入门(一)——Protobuf简介
查看>>
python socket 网络编程selector用法 实用
查看>>
LINUX-基础命令(三)
查看>>
Python-Django配置阿里大于的短信验证码接口
查看>>
requirejs vue vue.router简单框架
查看>>
5月第一周几个要处理的问题
查看>>
在CentOS 中yum 安装Tomcat 6
查看>>
POJ 1088: 滑雪
查看>>
树莓派用Python写几个简单程序5:用socket传图像
查看>>
在QNAP NAS上安装pfSense
查看>>
以太网帧结构
查看>>
EditPlus 配置 Java & C/CPP 开发环境
查看>>
细谈Quercus----Java之PHP框架
查看>>
QML与C++交互:登陆界面设计
查看>>
echo命令选项及设置文字颜色显示详细参数
查看>>
java枚举类型的用法
查看>>
skynet学习一
查看>>
迪普应用防火墙产品线
查看>>
mysql-5.7.21版本一直报错ERROR 1067 (42000)!
查看>>
maven自动建立目录
查看>>