日期:2014-05-18 浏览次数:20502 次
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TB_Student]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TB_Student] GO CREATE TABLE [dbo].[TB_Student] ( [strStudent] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [strClass] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [nScore] [int] NOT NULL ) ON [PRIMARY] GO insert into TB_Student(strStudent,strClass,nScore) values('张三','语文',65) insert into TB_Student(strStudent,strClass,nScore) values('张三','数学',85) insert into TB_Student(strStudent,strClass,nScore) values('张三','英语',90) insert into TB_Student(strStudent,strClass,nScore) values('李四','语文',56) insert into TB_Student(strStudent,strClass,nScore) values('李四','数学',67) insert into TB_Student(strStudent,strClass,nScore) values('李四','英语',89) insert into TB_Student(strStudent,strClass,nScore) values('王五','语文',56) insert into TB_Student(strStudent,strClass,nScore) values('王五','数学',55) insert into TB_Student(strStudent,strClass,nScore) values('王五','英语',87) /* 结果 姓名 学科 成绩 '张三','英语',90 '李四','英语',89 '王五','英语',87 */ --谢谢 各位
select * from TB_Student t where not exists(select 1 from TB_Student where strStudent=t.strStudent and nScore>t.nScore)
------解决方案--------------------
为什么不直接用
select * from dbo.TB_Student where strclass='英语'
------解决方案--------------------
貌似和group by 没有关系
select * from [TB_Student] where strClass='英语'
------解决方案--------------------
select * from TB_Student a where nScore=(select max(nScore) from TB_Student where strStudent=a.strStudent)