疑难问题,请大家帮忙!

thanmail 2006-03-13 10:16:47
有表如下:

组名 得分 时间
team1 99 2005.1.1
team1 92 2005.2.5
team1 95 2006.1.3
team2 91 2005.3.2
team2 98 2005.6.5
team2 96 2006.3.2

要求最新时间的各组的得分情况:
即得到下表:
team1 95 2006.1.3
team2 96 2006.3.2

分不够可以再加!
...全文
77 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
thanmail 2006-03-14
谢谢大家!
回复
thanmail 2006-03-14
从现在起,如果有新的方法请发帖,
老的方法就不再给分了,
新方法我再加分。
回复
wgsasd311 2006-03-14
create table tb(组名 varchar(10), 得分 int , 时间 datetime)
insert into tb
select 'team1', 99 , '2005.1.1'
union select 'team1', 92, '2005.2.5'
union select 'team1', 95, '2006.1.3'
union select 'team2', 91, '2005.3.2'
union select 'team2', 98, '2005.6.5'
union select 'team2', 96, '2006.3.2'

go
select * from tb a
where
not exists(select 1 from tb where a.组名=组名 and 时间>a.时间)

drop table tb
回复
$扫地僧$ 2006-03-14
create table fen(组名 varchar(10), 得分 int , 时间 datetime)
insert into fen
select 'team1', 99 , '2005.1.1'
union select 'team1', 92, '2005.2.5'
union select 'team1', 95, '2006.1.3'
union select 'team2', 91, '2005.3.2'
union select 'team2', 98, '2005.6.5'
union select 'team2', 96, '2006.3.2'


select * from fen a where 时间=(select top 1 时间 from fen where 组名=a.组名 order by 时间 DESC)
回复
yuweiwei 2006-03-14

create table fen(组名 varchar(10), 得分 int , 时间 datetime)
insert into fen
select 'team1', 99 , '2005.1.1'
union select 'team1', 92, '2005.2.5'
union select 'team1', 95, '2006.1.3'
union select 'team2', 91, '2005.3.2'
union select 'team2', 98, '2005.6.5'
union select 'team2', 96, '2006.3.2'

select 组名,Max( 时间)shijian from fen group by 组名
select fen.* from fen,(select 组名,Max( 时间)shijian from fen group by 组名)tt
where fen.组名=tt.组名 and fen.时间=tt.shijian
回复
huailairen 2006-03-13
结果
组名 得分 时间
---------- ----------- ------------------------------------------------------
team1 95 2006-01-03 00:00:00.000
team2 96 2006-03-02 00:00:00.000

(所影响的行数为 2 行)

回复
huailairen 2006-03-13

create table fen(组名 varchar(10), 得分 int , 时间 datetime)
insert into fen
select 'team1', 99 , '2005.1.1'
union select 'team1', 92, '2005.2.5'
union select 'team1', 95, '2006.1.3'
union select 'team2', 91, '2005.3.2'
union select 'team2', 98, '2005.6.5'
union select 'team2', 96, '2006.3.2'

select * from fen

select *
from fen a
where not exists(select * from fen b where a.组名=b.组名 and a.时间<b.时间)
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-13 10:16
社区公告
暂无公告