`
lixucheng
  • 浏览: 79783 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

SQL语句:把统计结果按照特定的列值转换成多列

阅读更多

要求:查询每个老师所带毕业设计的汇总情况,毕业设计学生分本科、专科,院外、院内,要求得到的结果形式如下:

教师名 院内本科 园内专科 院外本科 院外专科 合计

相关的表有:学生表(包含学生层次)、教师表(教师名)、学生课题表(学生教师对应关系以及院内院外信息)。

SQL语句如下:

select

teacher.teacher_name,ifnull(c1.c,0) v1,ifnull(c2.c,0) v2,ifnull(c3.c,0) v3,ifnull(c4.c,0) v4,
(ifnull(c1.c,0)+ifnull(c2.c,0)+ifnull(c3.c,0)+ifnull(c4.c,0)) sum

from teacher

left outer join
(

select

teacher_id,count(*) c

from

taskbook,student
where

taskbook.taskbook_inner_task='院内' and degree_id>1 and student.student_id=taskbook.student_id
group by

teacher_id

) c1 using(teacher_id)

left outer join
(

select

teacher_id,count(*) c

from

taskbook,student
where

taskbook.taskbook_inner_task='院内' and degree_id=1 and student.student_id=taskbook.student_id
group by

teacher_id

) c2 using(teacher_id)

left outer join
(

select

teacher_id,count(*) c

from

taskbook,student
where

taskbook.taskbook_inner_task='院外' and degree_id>1 and student.student_id=taskbook.student_id
group by

teacher_id

) c3 using(teacher_id)

left outer join
(

select

teacher_id,count(*) c

from

taskbook,student
where

taskbook.taskbook_inner_task='院外' and degree_id=1 and student.student_id=taskbook.student_id
group by teacher_id

) c4 using(teacher_id);

类似的问题有:在一个表中存储了学生的所有选修课程成绩,典型的列有:学号、课程号、成绩。需要得到的结果如下:

学号 课程1成绩 课程2成绩 课程3成绩

分享到:
评论

相关推荐

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    找了网上很多资料,都没有详细的做法有的还很复杂,自己写了个分割函数,通过直接查询就能分割多行,很方便。

    SQL语法大全

    rs.open SQL语句,conn,3,2 3. SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like \'%字段值%\'...

    2009达内SQL学习笔记

    多数DBMS不需要在单条SQL语句后加分号,但特定的DBMS可能必须在单条SQL语句后加分号。 SQL语句的最后一句要以 “;”号结束 二、写子句顺序 Select column,group_function From table [Where condition] ...

    精通SQL--结构化查询语言详解

    1.5.3 sql语句的结构 13 .1.5.4 sql的优点 13 1.5.5 sql的执行 14 1.6 sql环境 15 1.6.1 环境 15 1.6.2 sql的层次结构 15 1.6.3 客户程序和服务程序系统 17 1.6.4 sql环境中对象的命名规则 18 第2章 主要的...

    Microsoft SQL Server 2005 Express Edition SP3

    SQL Server Express 依赖于特定 2.0 版本的 .NET Framework。如果您已安装了其他版本的 .NET Framework,则 SQL Server Express 安装可能会在运行时发生意外情况。您可以从此 Microsoft 网站下载 .NET Framework 2.0...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    6.2.4 标识SQL语句以便以后取回计划 153 6.2.5 深入理解DBMS_XPLAN的细节 156 6.2.6 使用计划信息来解决问题 161 6.3 小结 169 第7章 高级分组 170 7.1 基本的GROUP BY用法 171 7.2 HAVING子句 174 7.3 GROUP...

    精通SQL 结构化查询语言详解

    1.5.3 SQL语句的结构  1.5.4 SQL的优点  1.5.5 SQL的执行  1.6 SQL环境  1.6.1 环境  1.6.2 SQL的层次结构  1.6.3 客户程序和服务程序系统  1.6.4 SQL环境中对象的命名规则  第2章 主要的关系...

    SQL语言参考大全(CHM)

    如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。有关更多信息,请参见浏览模式。 说明 在含有 FOR ...

    orcale常用命令

    如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句: SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES'; 依此类推,就可以轻松知道数据字典的详细...

    Oracle9i的init.ora参数中文说明

    说明: (如果值为 TRUE) 当在隐式转换中丢失数据时返回错误的参数。 值范围: FALSE | TRUE 默认值: TRUE nls_numeric_characters: 说明: 指定将用作组分隔符和小数位的字符。组分隔符就是用来分隔整数位组 (如千, ...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,...

    SQL Server 2008管理员必备指南(超高清PDF)Part1

    《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,...

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,...

    Oraclet中的触发器

    REFERENCING 子句说明相关名称,在行触发器的PL/SQL块和WHEN 子句中可以使用相关名称参照当前的新、旧列值,默认的相关名称分别为OLD和NEW。触发器的PL/SQL块中应用相关名称时,必须在它们之前加冒号(:),但在WHEN...

    SQL.Server.2008管理员必备指南.part4.rar(4/4)

     导入、导出、转换和复制数据  使用SQL Server Management Studio执行主要的管理任务  操作架构、表、索引和视图  进行自动化维护和实现基于策略的管理  监视服务器活动并优化性能  管理日志传送和数据库镜像 ...

    SQL.Server.2008管理员必备指南.part2.rar(2/4)

     导入、导出、转换和复制数据  使用SQL Server Management Studio执行主要的管理任务  操作架构、表、索引和视图  进行自动化维护和实现基于策略的管理  监视服务器活动并优化性能  管理日志传送和数据库镜像 ...

    SQL.Server.2008管理员必备指南.part1.rar(1/4)

     导入、导出、转换和复制数据  使用SQL Server Management Studio执行主要的管理任务  操作架构、表、索引和视图  进行自动化维护和实现基于策略的管理  监视服务器活动并优化性能  管理日志传送和数据库镜像 ...

    东北大学软件学院程序实践(四)数据库实验报告

    4.写SQL语句,检索特定书名(比如说是”Fundamentals of Database Systems”)的出版人。 第三部分: 1. 已知关系表r和s如下: 表 r A B C a b c d a f c b d 表 s D E F b g a d a f 给出差运算r-s和s-r的...

Global site tag (gtag.js) - Google Analytics