有兩個表。表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。
感謝
有兩個表。表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。
感謝
嘗試:
SELECT msisdn, max(regdate)
FROM (SELECT msisdn, regdate
FROM tablea
UNION
SELECT msisdn, regdate
FROM tableb)
group by msisdn;
如果你想完整記錄:
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;
我想你應該是更具體的是什麼 「結果」 的意思。你是否希望桌子上的整行有最大的regdate? –
是的,從最新的regdate表的整個行。 –