码迷,mamicode.com
首页 > 数据库 > 详细

SQL B表按照A表ID求和排序

时间:2015-11-10 23:42:03      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:

按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句

/*      

        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求和排序

标签:

原文地址:http://www.cnblogs.com/BH-RJ-WK/p/4954818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!