2017-02-14 79 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