[转载]编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数

转载自:https://blog.csdn.net/one_money/article/details/5692120
 

有以下两张表,
Class表 
classid classname
1 高三(一)班
2 高三(二)班
3 高三(三)班
Student表
studentid   studentName classid
1    张三            2
2     李四           1
3    王五             1
4    赵六             3
5    钱七             2
6     孙九          3
score表
scoreid course studentid score
1 数学 2 99
2 数学 3 60
3 数学 4 80
4 语文 5 79
5 语文 6 58
6  语文 1 66
7  英语 6 76
8 英语 4 87
9 英语 3 100
10 英语 2 69
编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数

SQL语句:

if exists(select count(*) from sysobjects where type='U' and name='#temp') 
   drop table #temp
select p.studentid,studentname,p.classid,classname,course,score into #temp from 
      (   select studentid,studentname,student.classid,classname 
          from student right outer join class on student.classid=class.classid) as p 
   left outer join score  on p.studentid=score.studentid
select   (select top 1 studentname from  #temp where classname=x.classname and course=x.course order by score  desc) as '姓名',classname as '班级',course as '课程',max(score) as '分数'
       from  #temp x group by classname,course order by classname

编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数

2010年06月24日 17:24:00 one_money 阅读数:9041 标签: sqljoinclasstable更多

个人分类: SQL Server
 

有以下两张表,
Class表 
classid classname
1 高三(一)班
2 高三(二)班
3 高三(三)班
Student表
studentid   studentName classid
1    张三            2
2     李四           1
3    王五             1
4    赵六             3
5    钱七             2
6     孙九          3
score表
scoreid course studentid score
1 数学 2 99
2 数学 3 60
3 数学 4 80
4 语文 5 79
5 语文 6 58
6  语文 1 66
7  英语 6 76
8 英语 4 87
9 英语 3 100
10 英语 2 69
编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数

SQL语句:

if exists(select count(*) from sysobjects where type='U' and name='#temp') 
   drop table #temp
select p.studentid,studentname,p.classid,classname,course,score into #temp from 
      (   select studentid,studentname,student.classid,classname 
          from student right outer join class on student.classid=class.classid) as p 
   left outer join score  on p.studentid=score.studentid
select   (select top 1 studentname from  #temp where classname=x.classname and course=x.course order by score  desc) as '姓名',classname as '班级',course as '课程',max(score) as '分数'
       from  #temp x group by classname,course order by classname

[转载]编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数的更多相关文章

  1. delphi连接sql server数据库,并根据sql语句查询出数据显示--初级

    需要用到四个组件,分别为: 1.ADOConnection1 设置Connectionstring属性(连接串),loginPrompt属性控制是否连接记住了密码: 2.ADOQuery1 设置Con ...

  2. 后台异常 - sql语句查询出的结果与dao层返回的结果不一致

    问题描述 sql语句查询出的结果与dao层返回的结果不一致 问题原因 (1)select 中,查询的列名称重复,数据出现错乱 (2)使用不等号,不等号(!=,<>),查询出来的结果集不包含 ...

  3. 一个学生分数表,用sql语句查询出各班级的前三名

    昨天去一家公司面试,被这道题难住了,哎,又失去一次好的机会. 回来 之后就再想这个问题 表结构及数据如下:

  4. sql语句查询出的某字段内容截取

    select  LEFT(context,LENGTH(context)-1) context    from table; (效果: 1,2,3, 查询出: 1,2,3 )

  5. sql语句查询出数据重复,取唯一数据

    select distinct mr.id,ifnull(mr.pid,0) as pid,mr.name from sys_role_res srr left join main_res mr on ...

  6. sql语句查询出表里符合条件的第二条记录的方法

    创建用到的表的SQL CREATE TABLE [dbo].[emp_pay]( [employeeID] [int] NOT NULL, [base_pay] [money] NOT NULL, [ ...

  7. 关于如何用sql语句查询出连续的一串数字

    在数据库操作中,经常有一些这样的操作:插入诺干条测试数据.查询这个月的登录情况(没有登录的日期不能不存在,要显示数量为0),获取诺干条guid. 这些的基础都是怎么生成连续的一串数字  1 2  3  ...

  8. mysql 按类别之用一条SQL语句查询出每个班前10名学生数据

    select * from 学生信息表 a where 10 >  (select count(*) from 学生信息表 where 班级ID = a.班级ID and 班内名次 > a ...

  9. 转载用sql语句计算出mysql数据库的qps,tps,iops性能指标

    本帖最后由 LUK 于 2014-9-21 22:39 编辑 思路: 1 关注MYSQL三个方面的性能指标,分别为query数,transaction数,io请求数 2 在某个时间范围内(例如20秒) ...

随机推荐

  1. 性能超前,详解腾讯云新一代Redis缓存数据库

    背景 当前内存数据库发展迅速,用户对于存储系统的要求也越来越高,为了满足各类业务场景的需要,腾讯云设计了新一代的内存数据库,不但保留了原来系统的高性能,高可用等特性,同时还兼容了当前流行的Redis原 ...

  2. CSS fixed 定位元素失效的问题

    一个示例 考察下面的代码: <head> <title>css filter issue</title> <style> body { height: ...

  3. C#爬虫使用代理刷csdn文章浏览量

    昨天写了一篇关于“c#批量抓取免费代理并验证有效性”的文章,接着昨天的目标继续完成吧,最终实现的目的就是刷新csdn文章的浏览量(实际上很简单,之前博客园的文章也是可以使用代理ip来刷的,后来不行了) ...

  4. Asp.Net Core&Docker部署到树莓派3B中

    花了一点时间将吃灰数月的树莓派装上了Docker,并在容器中部署了一个Asp.Net Core应用程序,通过花生壳映射树莓派中的程序,可以使用外网访问树莓派,玩起来很有意思(外网访问地址:http:/ ...

  5. python3的变量作用域规则和nonlocal关键字

    也许你已经觉得自己可以熟练使用python并能胜任许多开发任务,所以这篇文章是在浪费你的时间.不过别着急,我们先从一个例子开始: i = 0 def f(): print(i) i += 1 prin ...

  6. 001-为什么Java能这么流行

    本文首发于公众号:javaadu 典型回答 这种问题比较笼统,如果我遇到这个问题,我会从下面几个点阐述我的观点: Java通过JVM实现了"一次编写,到处运行"的特性,由JVM屏蔽 ...

  7. gitbook 入门教程之使用 gitbook-editor 编辑器开发电子书

    亲测,目前已不再支持旧版 gitbook-editor 编辑器,而官网也没有相应的新版编辑器,如果哪位找到了新版编辑器,还望告知! 现在注册 gitbook 账号会默认重定向到 新版官网,而 旧版官网 ...

  8. Python之路【第六篇】:Python迭代器、生成器、面向过程编程

    阅读目录 一.迭代器 1.迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 代码如下: while True: ...

  9. 数据库常用操作SQL语句

    禁用触发器: alter table tb disable trigger tir_name 启用触发器: alter table tb enable trigger tir_name

  10. SqlServer中的系统数据库

    SqlServer中的系统数据库有五个,平时写代码不太关注,今天一时兴起研究了一下. 1. master 记录SQL Server系统的所有系统级信息,例如:登陆账户信息.链接服务器和系统配置设置.记 ...