注册 登录
编程论坛 SQL Server论坛

求一句SQL语句。

power6d 发布于 2006-11-14 09:05, 862 次点击
Name BNum ENum
aaa 10 20
aaa 20 40
aaa 30 35
bbb 12 22
bbb 11 12
bbb 13 20

要求选出以Name分组的每组中BNum最大的数据

出来的结果是
Name BNum ENum
aaa 30 35
bbb 13 20

怎么写?
13 回复
#2
CrazyWeed09072006-11-14 09:19
select max(bNum) from table group by Name
#3
power6d2006-11-14 09:22
你这个就出一个字段啊。我要的是全部的字段。
#4
小水滴2006-11-14 09:49
select * from table as t
where bnum in(select max(bNum) from table group by Name)
#5
power6d2006-11-14 10:08

好象也不对。
万一原数据是这样的。
Name BNum ENum
aaa 10 20
aaa 20 40
aaa 30 35
bbb 12 22
bbb 20 12

出来的结果是
Name BNum ENum
aaa 20 40
aaa 30 35
bbb 20 12

#6
CrazyWeed09072006-11-14 10:39

select a.bnum ,a.name ,b.enum from (select max(bNum) as bNum ,Name from table group by Name) a
inner join table b on a.name = b.name and a.bnum = b.bnum

[此贴子已经被作者于2006-11-14 10:40:32编辑过]

#7
power6d2006-11-15 12:48
OK了,谢谢啊。
#8
潇洒老乌龟2006-11-15 23:15

Name BNum ENum
aaa 10 20
aaa 20 40
aaa 30 35
bbb 12 22
bbb 11 12
bbb 13 20

要求选出以Name分组的每组中BNum最大的数据

select a.* from tb a,

(select name , max(bnum) as bnum from tb group by name) b

where a.name = b.name and a.bnum = b.bnum

#9
hanbingchong2006-11-16 19:38

谢谢了,

#10
漯河2006-11-17 20:05
学到了。
#11
zxd1987782006-11-17 22:48
select *
from table
where (select bnum
from table
where max(bnum))
#12
xucong2006-11-18 00:45
select * from table a join
(select max(bnum) as bnum,name from table group by name) b
on a.name=b.name and a.bnum=b.bnum
#13
tsing_662006-11-18 09:46
如果要求选出以Name分组的每组中BNum最大的数据和ENum最大的数据合为一启示录呢。。嘎嘎
#14
潇洒老乌龟2006-11-18 23:25
一启示录?啥意思?台湾人?
1