2016-09-06 118 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; 
相关问题