2014年12月3日 星期三

Join至其他table並抓到最大的日期

取得table最大日期

SELECT K1,K2,D FROM T1
WHERE D = (SELECT MAX(D) FROM T1)

錯誤寫法:join至其他table並抓到最大的日期,此寫法會出現
ORA-01799: 資料欄不可以外部結合的方式與一個子查詢結合

SELECT K,D,D2 FROM T1 LEFT JOIN T2 ON T2.K2 = T1.K
AND T2.D2 = (SELECT MAX(D2) FROM T2)

成功寫法:join至其他table並抓到最大的日期

SELECT K,D,D2 FROM T1 LEFT JOIN 
(
  SELECT K2,D2 FROM T2 AA WHERE AA.D2 IN
   (
     SELECT MAX(D2) FROM T2
     WHERE T2.K2 = AA.K2
   )
)C ON C.K2 = T1.K

沒有留言:

張貼留言