[SQL] Select 問題

假設我個table係

Chi_Name    SID     App_Year   Phone  
陳大文           123          2006      21111111      
陳小文            234          2006      24658888   
陳大文            123           2007     63251458

我想個result係跟據SID黎GROUP既...但係呢如果SID一樣就攞App_Year最新既成個row

即係個result就係
陳小文            234          2006      24658888   
陳大文            123           2007     63251458

個SQL要點寫?

唔該哂

[ 本帖最後由 chickenchan 於 2009-6-9 19:45 編輯 ]

加個max(App_Year )落去

TOP

什麼 database 和 version?

TOP

原帖由 henrywho 於 2009-6-8 23:50 發表
什麼 database 和 version?

用 GROUP BY 和 MAX() 就不用管這些吧?

TOP

原帖由 DarkHero 於 2009-6-8 23:43 發表
加個max(App_Year )落去


可唔可以全句...
加左之後個phone點算?

TOP

The more you know, the more questions you can come up with.

TOP

select * from <table> where
(sid, app_year) = (select sid, max(app_year)
                                from <table>
                                group by sid)

而家手上冇DB, 唔肯定個syntax係咪正確,應該差唔多

TOP

原帖由 chickenchan 於 2009-6-9 00:30 發表


可唔可以全句...
加左之後個phone點算?

憑呢句睇出你無溫書

TOP

原帖由 wallwall 於 2009-6-9 01:13 發表
select * from  where
(sid, app_year) = (select sid, max(app_year)
                                from
                                group by sid)

而家手上冇DB, 唔肯定個syntax係咪正確,應該差唔多

咩寫法黎架, 第一次見, 真係work

TOP

原帖由 wallwall 於 2009-6-9 01:13 發表
select * from  where
(sid, app_year) = (select sid, max(app_year)
                                from
                                group by sid)

而家手上冇DB, 唔肯定個syntax係咪正確,應該差唔多


subquery returns more than one field...

TOP