要求:查询每个老师所带毕业设计的汇总情况,毕业设计学生分本科、专科,院外、院内,要求得到的结果形式如下:
教师名 院内本科 园内专科 院外本科 院外专科 合计
相关的表有:学生表(包含学生层次)、教师表(教师名)、学生课题表(学生教师对应关系以及院内院外信息)。
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成绩
分享到:
相关推荐
找了网上很多资料,都没有详细的做法有的还很复杂,自己写了个分割函数,通过直接查询就能分割多行,很方便。
rs.open SQL语句,conn,3,2 3. SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like \'%字段值%\'...
多数DBMS不需要在单条SQL语句后加分号,但特定的DBMS可能必须在单条SQL语句后加分号。 SQL语句的最后一句要以 “;”号结束 二、写子句顺序 Select column,group_function From table [Where condition] ...
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章 主要的...
SQL Server Express 依赖于特定 2.0 版本的 .NET Framework。如果您已安装了其他版本的 .NET Framework,则 SQL Server Express 安装可能会在运行时发生意外情况。您可以从此 Microsoft 网站下载 .NET Framework 2.0...
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...
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章 主要的关系...
如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。有关更多信息,请参见浏览模式。 说明 在含有 FOR ...
如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句: SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES'; 依此类推,就可以轻松知道数据字典的详细...
说明: (如果值为 TRUE) 当在隐式转换中丢失数据时返回错误的参数。 值范围: FALSE | TRUE 默认值: TRUE nls_numeric_characters: 说明: 指定将用作组分隔符和小数位的字符。组分隔符就是用来分隔整数位组 (如千, ...
《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,...
《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,...
《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,...
REFERENCING 子句说明相关名称,在行触发器的PL/SQL块和WHEN 子句中可以使用相关名称参照当前的新、旧列值,默认的相关名称分别为OLD和NEW。触发器的PL/SQL块中应用相关名称时,必须在它们之前加冒号(:),但在WHEN...
导入、导出、转换和复制数据 使用SQL Server Management Studio执行主要的管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 ...
导入、导出、转换和复制数据 使用SQL Server Management Studio执行主要的管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 ...
导入、导出、转换和复制数据 使用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的...