首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL抢分题,(老规矩,顶者有分),该如何解决

2012-03-27 
SQL抢分题,(老规矩,顶者有分)现在有这部分数据:case_idlab_idmodify_time-------------------------------

SQL抢分题,(老规矩,顶者有分)
现在有这部分数据:
case_id           lab_id             modify_time                                                                                        
-----------   -----------   ----------------------------------  
5002                 26                     2007-02-12   15:15:35.440
5002                 27                     2007-02-12   15:29:21.330
5002                 28                     2007-02-12   15:50:56.667
5003                 29                     2007-02-12   15:53:26.350

想要的结果是按case_id栏位分组,找出组内modify_time最大的数据。
结果应该是
case_id           lab_id             modify_time                                                                                        
-----------   -----------   ----------------------------------  
5002                 28                     2007-02-12   15:50:56.667
5003                 29                     2007-02-12   15:53:26.350
该怎么写SQL?
谢谢指教

[解决办法]

select A.*
from 表名 as A
inner join (select case_id,max(modify_time) AS modify_time from 表名 group by case_id) as B on A.case_id=B.case_id and A.modify_time =B.modify_time

[解决办法]

create table #t(case_id int,lab_id int,modify_time datetime)

insert into #t
select 5002,26, '2007-02-12 15:15:35.440 ' union all
select 5002,27, '2007-02-12 15:29:21.330 ' union all
select 5002,28, '2007-02-12 15:50:56.667 ' union all
select 5003,29, '2007-02-12 15:53:26.350 '

--如下SQL语句
select *
from #t as a
where not exists (select * from #t where case_id=A.case_id and modify_time> A.modify_time)

drop table #t
[解决办法]
顶!~~

热点排行