sql server 数据库中记录名相同取最大值的问题
标题中叙述的可能不正确。我有这样一个表(magazine):idmagazinenametotalNO1青春之舞22青春之舞33青春之舞54读者35读者26爱人57生命力...
标题中叙述的可能不正确。
我有这样一个表(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楼更接近我的答案 所以。。。 展开
我有这样一个表(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楼更接近我的答案 所以。。。 展开
3个回答
展开全部
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\")
应该是可以的!
为什么 会出现斜杠 我打的时候没有 ! 晕
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) values('品味人生',9 )
select tb.* from tb,(select name ,max(score) 'score' from tb group by name)tc
where tb.name=tc.name and tb.score=tc.score
drop table tb
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) values('品味人生',9 )
select tb.* from tb,(select name ,max(score) 'score' from tb group by name)tc
where tb.name=tc.name and tb.score=tc.score
drop table tb
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT MAX(A.id),MAX(A.magazinename),A.totalNO
FROM
magazine A JOIN
(SELECT magazinename,MAX(totalNO) AS totalNO FROM magazine GROUP BY magazinename) B
ON A.totalNO = B.totalNO
GROUP BY A.totalNO
FROM
magazine A JOIN
(SELECT magazinename,MAX(totalNO) AS totalNO FROM magazine GROUP BY magazinename) B
ON A.totalNO = B.totalNO
GROUP BY A.totalNO
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询