2017-02-14 57 views
0

Employee表最新日期在SQL

ID Name Update_date Active Phone_no 
1 Dave 02-07-14  Y  99999945 
1 Dave 19-12-16  Y  88888888 
2 Mike 12-11-17  Y  234234567 
2 Mike 12-11-14  Y  345435343 

我需要的是:从员工那里身份证件(1,2)SELECT *; 上面的查询会给我上面的表格,因为它是。 但我需要的是

ID Name Update_date Active Phone_no 
1 Dave 19-12-16  Y  88888888 
2 Mike 12-11-17  Y  234234567 

对于每一个ID搜索它应采取最新的日期。

回答

1

您可以通过

select * from my_table 
where (id, Update_date) in ( select id, max(update_date) 
           from my_table 
           group by id) 
0

Chedk本条款和组使用数组和一个子查询用。

select * from 

( Select ID,Name,row_number() over (partition by ID order by Update_date desc) as row ,Active ,Phone_no , 
     Update_date 

     from employee 
) a where id in (1,2) and row='1' 
+0

的OP所需要的所有colums ..(phone_no太) – scaisEdge

+0

'和行='1'' ......但ROW_NUMBER()产生一个数,而不是字符串。这应该是'和行= 1' – Boneist