时间:2021-07-01 10:21:17 帮助过:5人阅读
/*
create table 学生表(
学号 nvarchar(100) null,
姓名 nvarchar(100) null)
create table 成绩表(
学号 nvarchar(100) null,
科目 nvarchar(100) null,
成绩 decimal(10,1) null
)
insert into 学生表 values(‘101‘,‘张三‘)
insert into 学生表 values(‘104‘,‘李四‘)
insert into 学生表 values(‘107‘,‘王五‘)
insert into 学生表 values(‘111‘,‘任六‘)
insert into 成绩表 values(‘101‘,‘语文‘,90)
insert into 成绩表 values(‘101‘,‘数学‘,91)
insert into 成绩表 values(‘101‘,‘英语‘,92)
insert into 成绩表 values(‘101‘,‘政治‘,93)
insert into 成绩表 values(‘104‘,‘语文‘,96)
insert into 成绩表 values(‘104‘,‘数学‘,70)
insert into 成绩表 values(‘104‘,‘英语‘,80)
insert into 成绩表 values(‘104‘,‘政治‘,92)
insert into 成绩表 values(‘107‘,‘语文‘,70)
insert into 成绩表 values(‘107‘,‘数学‘,100)
insert into 成绩表 values(‘107‘,‘英语‘,90)
insert into 成绩表 values(‘107‘,‘政治‘,98)
insert into 成绩表 values(‘111‘,‘语文‘,97)
insert into 成绩表 values(‘111‘,‘数学‘,90)
insert into 成绩表 values(‘111‘,‘英语‘,99)
insert into 成绩表 values(‘111‘,‘政治‘,99)
*/
select A.姓名
,(select B.成绩 from 成绩表 B where B.科目=‘语文‘ and A.学号=B.学号) as 语文
,(select B.成绩 from 成绩表 B where B.科目=‘数学‘ and A.学号=B.学号) as 数学
,(select B.成绩 from 成绩表 B where B.科目=‘英语‘ and A.学号=B.学号) as 英语
,(select B.成绩 from 成绩表 B where B.科目=‘政治‘ and A.学号=B.学号) as 政治
,(select SUM(B.成绩) from 成绩表 B where A.学号=B.学号) as 总成绩
from 学生表 A order by 总成绩 DESC
查询结果:
SQL B表按照A表ID求和排序
标签: