首页 > 数据库技术 > 详细

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

时间:2015-11-10 23:41:56      阅读:370      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!