2016-09-06 98 views
0

有兩個表。表a和b。 A包含msisdn,firstname,secondname,lastname,regdate(註冊數據)。表b也有相同的字段。 msisdn X在表A和表B中有兩個不同的regdate。我需要查詢兩個表,並獲得最近regdate的結果。SQL比較兩個表並獲取具有最近日期的記錄

像msisdn X表中的regdate是2016年4月1日和X表中的X regdate是01/AUG/2016,當我查詢我應該從B得到X的結果,因爲它有最新的regdate。

感謝

+0

我想你應該是更具體的是什麼 「結果」 的意思。你是否希望桌子上的整行有最大的regdate? –

+0

是的,從最新的regdate表的整個行。 –

回答

0

嘗試:

SELECT msisdn, max(regdate) 
FROM (SELECT msisdn, regdate 
FROM tablea 
UNION 
SELECT msisdn, regdate 
FROM tableb) 
group by msisdn; 
0

如果你想完整記錄:

select ab.* 
from (select ab.*, 
      row_number() over (partition by msisdn order by regdate desc) as seqnum 
     from ((select a.* 
      from tablea a 
      ) union all 
      (select b.* 
      from tableb b 
      ) 
      ) ab 
    ) ab 
where seqnum = 1; 
相關問題