一个简单的SQL语法请教大家
假设有一个表: 
 declare   @t   table(type   nvarchar(30),i   smallint,s1   nvarchar(50),s2   nvarchar(50)) 
 insert   @t 
 select    'A ',1, 'hh ', 'xx ' 
 union   all 
 select    'A ',2, 'jj ', 'ww ' 
 union   all 
 select    'B ',2, 'nn ', 'bb ' 
 union   all 
 select    'A ',3, 'b ', 'j ' 
 union   all 
 select    'B ',1, 'p ', 'h '   
 现在可通过如下语句得到每个type中最大的ID: 
 select   type,max(i)   as   MaxID   from   @t   group   by   type 
 结果是: 
 type   MaxID 
    A      3 
    B      2 
 可是,我想不仅得到MaxID,而要得到MaxID所对应行的其他列的信息:如下: 
 type   maxid   str1      str2 
    A            3             'b '          'j ' 
    B            2             'nn '       'bb ' 
 请问SqL语句如何表达?谢谢!
------解决方案--------------------declare @t table(type nvarchar(30),i smallint,s1 nvarchar(50),s2 nvarchar(50)) 
 insert @t 
 select  'A ',1, 'hh ', 'xx ' 
 union all 
 select  'A ',2, 'jj ', 'ww ' 
 union all 
 select  'B ',2, 'nn ', 'bb ' 
 union all 
 select  'A ',3, 'b ', 'j ' 
 union all 
 select  'B ',1, 'p ', 'h '   
 select t.* from @t t where t.i=(select max(i) from @t where type=t.type)
------解决方案--------------------  select * 
 from @t as a 
 where i=(select max(i)  from @t where type=a.type)
------解决方案--------------------  select * from @t a where NOT exists (select 1 from @t where a.type=type and a.I <I)
------解决方案--------------------  declare @t table(type nvarchar(30),i smallint,s1 nvarchar(50),s2 nvarchar(50)) 
 insert @t 
 select  'A ',1, 'hh ', 'xx ' 
 union all 
 select  'A ',2, 'jj ', 'ww ' 
 union all 
 select  'B ',2, 'nn ', 'bb ' 
 union all 
 select  'A ',3, 'b ', 'j ' 
 union all 
 select  'B ',1, 'p ', 'h '     
 select type,max(i)as max_i  into #t  from @t group by type 
 select * from #t    
 select * from @t a,#t b  
 where a.type=b.type and a.i=b.max_i   
 drop table #t