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.首先 寫一個 鏈接查詢語句: 好比有時間的表排序函數

二、 經過這個函數  select a.* row_number() over(partition by  分組的字段 order by 排序時間 desc) as rn from  (結果集) a code

2. 顯示的結果xml

這樣就會把第一條第二條進行排序。。 咱們 寫一個條件 rn=1 這樣就是取最近一條了。。排序

最後去關聯你想要的表就行了。。it

 

遇到的問題:io

若是其餘時間爲空 那麼他的排序就是 爲空的時間排再前面 如何解決呢?class

這裏使用上面的辦法解決。。。 select

效果圖:im

相關文章
相關標籤/搜索