例如:
select * from Student_score_info 得出
张三 第一学期 90分
李四 第一学期 80分
张三 第二学期 88分
王五 第二学期 70分
我想查出每个学生最新的成绩、也就是除了张三第一学期的成绩不要!其他3个数据都要保留!SQL怎么写?
select * from Student_score_info 得出
张三 第一学期 90分
李四 第一学期 80分
张三 第二学期 88分
王五 第二学期 70分
我想查出每个学生最新的成绩、也就是除了张三第一学期的成绩不要!其他3个数据都要保留!SQL怎么写?
if object_id('tempdb.dbo.#tb') is not null drop table #tb
go
create table #tb (name varchar(4),sj varchar(8),score varchar(4))
insert into #tb
select '张三','第一学期','90分' union all
select '李四','第一学期','80分' union all
select '张三','第二学期','88分' union all
select '王五','第二学期','70分'select * from #tb t
where not exists(select 1 from #tb where name=t.name and sj<t.sj)name sj score
---- -------- -----
李四 第一学期 80分
张三 第二学期 88分
王五 第二学期 70分(3 行受影响)
select a.姓名,(select top 1 b.学期 from Student_score_info where a.姓名=b.姓名 order by 学期 desc) [学期],a.分数
from Student_score_info as a 这样? 学期这样排序应该也是可以的。表设计的不是很合理,其实学期列记录1,2(分别表示第一、第二学期)就可以了,其他都是常量。
from Student_score_info as a 楼上的没错