sql server 数据库中记录名相同取最大值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 14:15:14
标题中叙述的可能不正确。

我有这样一个表(magazine):

id magazinename totalNO

1 青春之舞 2

2 青春之舞 3

3 青春之舞 5

4 读者 3

5 读者 2

6 爱人 5

7 生命力量 3

8 品味人生 9

我要magazinename中有重复的记录取totalNO中最大的那个,magazinename没有相同记录的就取那一条就行

例如 上面的结果应该是

id magazinename totalNO

3 青春之舞 5

4 读者 3

6 爱人 5

7 生命力量 3

8 品味人生 9
select magazinename, max(totalNO) from magazine group by magazinename
这样写得不到ID

select * from magazine where (magazinename,totalNO) in (select magazinename, max(totalNO) from magazine group by magazinename)

这样写又有错误,那位高手帮忙解决一下,我初学

问题解决!谢谢了3楼了 但4楼更接近我的答案 所以。。。

set rs=server.CreateObject (\"ADODB.Recordset\")
rs.Open \"select max(totalNO) as ABC,id,magazinename from magazine group by magazinename having count(magazinename)>=1\",conn

结果输出时用
用:
rs(\"ID\") rs(\"magazinename\") rs(\"ABC\")

应该是可以的!

为什么 会出现斜杠 我打的时候没有 ! 晕

if object_id('pubs..tb') is not null
drop table tb
go

create table tb
(
name varchar(10),
score int
)

insert into tb(name,score) values('青春之舞',2)
insert into tb(name,score) values('青春之舞',3)
insert into tb(name,score) values('青春之舞',5)
insert into tb(name,score) values('读者',3)
insert into tb(name,score) values('读者',2 )
insert into tb(name,score) values('爱人',5 )
insert into tb(name,score) values('生命力量',3 )
insert into tb(name,score