sql 临时表 有给表

aq9527 2017-11-17 10:26:42

列出选课成绩报表,要求列出:课程号、课程名称、学号、姓名、成绩,每门课程最后一行是该课程的平均成绩(保留2位),最后一行是所有的平均成绩(保留2位)

要求用临时表完成

效果图如下
...全文
711 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36534749 2018-01-23
  • 打赏
  • 举报
回复
楼主你详细要什么呢
小野马1209 2017-11-20
  • 打赏
  • 举报
回复
selct * into temp# from select ...查询语句 这样就可以把结果放到临时表中
RINK_1 2017-11-20
  • 打赏
  • 举报
回复


select case when GROUPING(A.cno)=1 then '2' 
            when GROUPING(A.cno)=0 then '1'
            end as xh,
       case when GROUPING(A.cno)=1 then '1' 
            when GROUPING(A.cno)=0 then '2'
            end as xh2,
       case when GROUPING(A.cno)=1 then '全部平均成绩' 
            when GROUPING(A.cno)=0 then A.cno
            end as 课程号,
       case when GROUPING(A.cno)=1 then '' 
            when GROUPING(A.cno)=0 then MAX(C.cname)
            end as 课程名称,
       case when GROUPING(A.cno)=0 and GROUPING(A.sno)=1 then '平均成绩' 
            when GROUPING(A.cno)=1 and GROUPING(A.sno)=1 then ''
            else A.sno
            end as 学号,
       case when GROUPING(A.sno)=0 then MAX(B.sname)
            else ''
            end as 姓名,
       cast(AVG(grade*1.00) as decimal(6,2)) as 成绩
into #A
from SC A
join S B ON A.sno=B.sno
join C C ON A.cno=C.cno
group by rollup(A.cno,A.sno)
order by xh,xh2 desc,A.cno,GROUPING(A.sno)

select * from #A
aq9527 2017-11-19
  • 打赏
  • 举报
回复
have peopel?
aq9527 2017-11-18
  • 打赏
  • 举报
回复
我不会写啊,要求和图片效果一样
aq9527 2017-11-18
  • 打赏
  • 举报
回复
have people?
  • 打赏
  • 举报
回复
把select 出来的东西 into 到 #table 就放到临时表里面了
二月十六 2017-11-18
  • 打赏
  • 举报
回复
SELECT  CASE WHEN cname IS NULL THEN '全部平均成绩'
ELSE cname
END AS 课程名称 ,
CASE WHEN sname IS NULL AND cname IS NOT NULL THEN '平均成绩'
ELSE sname
END AS 课名称 ,
平均成绩
FROM ( SELECT cname ,
sname ,
AVG(grade) AS 平均成绩
FROM SC
JOIN c ON C.cno = SC.cno
JOIN dbo.S ON S.sno = SC.sno
GROUP BY ROLLUP(cname, sname)
) t


日月路明 2017-11-18
  • 打赏
  • 举报
回复
我知道我就来晚了,楼上正解
aq9527 2017-11-18
  • 打赏
  • 举报
回复
下面是不用临时表的 可以参考下 效果就是一楼图片里的 select 1 xh,2 xh2,C.cno as 课程号,C.cname as 课程名称,S.sno as 学号,S.sname as 姓名,grade as 成绩 from C,SC,S where C.cno = SC.cno and S.sno = SC.sno group by C.cno,C.cname,S.sno,S.sname,SC.grade union all select 1 xh,2 xh2,C.cno,C.cname,'平均成绩','',convert(numeric(10,2),avg(grade)) from SC,C where SC.cno=C.cno group by C.cno,C.cname union all select 2 xh,1 xh2,'全部平均成绩','','','',convert(numeric(10,2),avg(grade)) from SC order by C.cno
卖水果的net 2017-11-18
  • 打赏
  • 举报
回复
楼主是没思路? declare @t(kc varchar,xh varchar,cj decimal,seq int) -- 1 写入明细数据 insert into @t select kc,xh,cj,1 from mytable --2 写入课程的汇总 insert into @t select kc,'',sum(cj),2 from mytable group by kc --3 写入总的汇总数 insert into @t select '','',sum(cj),3 from mytable -- 4查询 select * from @t order by kc,xh,seq
二月十六 2017-11-18
  • 打赏
  • 举报
回复
引用 7 楼 aq9527 的回复:
我不会写啊,要求和图片效果一样
如果要一模一样的 建议楼主列出表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
aq9527 2017-11-17
  • 打赏
  • 举报
回复
建立一个学生数据表 CREATE TABLE S( [sno][varchar](20) NOT NULL, [sname][nvarchar](20) NOT NULL, ) 建立一个课程数据表 CREATE TABLE C( [cno][varchar](20) NOT NULL, [cname][varchar](20) NOT NULL, ) 建立一个选课数据表 CREATE TABLE SC( [sno][varchar](20) NOT NULL, [cno][varchar](20) NOT NULL, [grade][int] NOT NULL, )
第一篇 Oracle管理配置 第1章 Oracle安装配置(教学视频:10分钟) 23 1.1 Oracle简介 23 1.1.1 数据库术语 23 1.1.2 主流数据库简介 24 1.1.3 Oracle数据库的特点 24 1.2 安装Oracle数据库 25 1.2.1 Oracle数据库的版本变迁及安装环境 25 1.2.2 安装过程 26 1.2.3 安装中需要注意的问题 27 1.3 本章小结 28 1.4 习题 28 第2章 Oracle常用工具(教学视频:7分钟) 29 2.1 Net Configuration Assistant(网络配置助手) 29 2.1.1 监听程序配置 29 2.1.2 命名方法配置 31 2.1.3 本地Net服务名配置 32 2.2 Net Manager(网络管理员) 34 2.3 本章实例 36 2.4 本章小结 38 2.5 习题 38 第3章 SQL Plus和PL/SQL(教学视频:11分钟) 39 3.1 SQL Plus与PL/SQL简介 39 3.2 使用SQL Plus 40 3.2.1 登录SQL Plus 40 3.2.2 SQL Plus输出结果的格式化 41 3.2.3 SQL Plus小结 46 3.3 PL/SQL 46 3.3.1 PL/SQL常用开发工具 46 3.3.2 开发一个简单的PL/SQL程序 48 3.4 本章实例 49 3.5 本章小结 50 3.6 习题 50 第二篇 Oracle数据库对象 第4章 Oralce数据库(教学视频:15分钟) 51 4.1 创建Oracle数据库 51 4.2 Oracle数据库的相关术语 52 4.2.1 数据库 53 4.2.2 数据库实例和SID 53 4.2.3 ORACLE_SID 54 4.3 Oracle数据库的备份与恢复 55 4.3.1 逻辑备份/恢复(导出/导入) 55 4.3.2 物理备份/恢复 56 4.3.3 利用PL/SQL Developer备份数据库 60 4.4 本章实例 61 4.5 本章小结 61 4.6 习题 62 第5章 Oracle数据对象(教学视频:42分钟) 63 5.1 Oracle空间 63 5.1.1 Oracle空间简介 63 5.1.2 创建Oracle空间 64 5.1.3 查看空间 66 5.1.4 修改数据库默认空间 67 5.1.5 修改空间名称 68 5.1.6 删除空间 69 5.2 创建Oracle数据 70 5.2.1 利用工具创建数据 70 5.2.2 利用工具查看数据 71 5.2.3 利用命令创建数据 72 5.2.4 利用命令查看结构 72 5.3 修改Oracle数据结构 73 5.3.1 利用工具修改数据结构 73 5.3.2 利用命令修改数据结构 74 5.4 删除数据 75 5.4.1 利用工具删除数据 76 5.4.2 利用SQL语句删除数据 76 5.5 备份/恢复数据 76 5.5.1 利用工具备份/恢复数据 77 5.5.2 利用命令备份/恢复数据 82 5.6 临时 83 5.6.1 临时简介 83 5.6.2 会话级临时 84 5.6.3 事务级临时 85 5.6.4 查看临时在数据库中的信息 86 5.6.5 临时的应用场景 86 5.7 特殊的dual 87 5.7.1 分析dual 87 5.7.2 dual的应用场景 87 5.7.3 修改dual对查询结果的影响 88 5.8 本章实例 89 5.9 本章小结 90 5.10 习题 90 第6章 约束(教学视频:43分钟) 91 6.1 主键约束 91 6.1.1 主键简介 91 6.1.2 创建主键约束 92 6.1.3 修改的主键约束 94 6.1.4 主键应用场景 96 6.2 外键约束 97 6.2.1 外键简介 97 6.2.2 创建外键约束 97 6.2.3 级联更新与级联删除 100 6.2.4 修改外键属性 102 6.2.5 外键使用 104 6.3 唯一性约束 105 6.3.1 唯一性约束简介 105 6.3.2 创建唯一性约束 105 6.3.3 修改唯一性约束 107 6.3.4 唯一性约束的使用 108 6.4 检查约束 108 6.4.1 检查约束简介 108 6.4.2 创建检查约束 108 6.4.3 修改检查约束 110 6.4.4 检查约束的使用 111 6.5 默认值约束 111 6.5.1 默认值约束简介 112 6.5.2 创建默认值约束 112 6.5.3 修改默认值约束 113 6.6 本章实例 115 6.7 本章小结 116 6.8 习题 116 第7章 视图(教学视频:50分钟) 117 7.1 关系视图 117 7.1.1 建立关系视图 117 7.1.2 修改/删除视图 118 7.1.3 联接视图 120 7.1.4 编译视图 122 7.1.5 使用force选项强制创建视图 124 7.1.6 利用视图更新数据 125 7.1.7 with check option选项 126 7.1.8 关系视图小结 128 7.2 内嵌视图 128 7.2.1 内嵌视图简介 128 7.2.2 内嵌视图的使用 128 7.2.3 内嵌视图小结 130 7.3 对象视图 131 7.3.1 对象视图简介 131 7.3.2 对象视图简介 131 7.4 物化视图 133 7.4.1 物化视图简介 133 7.4.2 物化视图的使用 133 7.4.3 物化视图的数据加载 135 7.4.4 物化视图的数据更新 135 7.4.5 查询重写 136 7.5 本章小结 136 7.6 本章实例 137 7.7 习题 137 第8章 函数与存储过程(教学视频:48分钟) 138 8.1 函数 138 8.1.1 函数简介 138 8.1.2 创建函数 139 8.1.3 函数中的括号 140 8.1.4 函数的参数 141 8.1.5 函数的确定性 142 8.1.6 典型函数举例 143 8.2 存储过程 144 8.2.1 存储过程简介 144 8.2.2 创建存储过程 144 8.2.3 存储过程的参数——IN参数 146 8.2.4 存储过程的参数——OUT参数 147 8.2.5 存储过程的参数——IN OUT参数 149 8.2.6 存储过程的参数——参数顺序 149 8.2.7 存储过程的参数——参数的默认值 152 8.2.8 存储过程的参数——参数顺序总结 153 8.3 程序包 153 8.3.1 规范 153 8.3.2 主体 155 8.3.3 调用程序包中的函数/存储过程 157 8.3.4 程序包中的变量 158 8.4 本章实例 159 8.5 本章小结 161 8.6 习题 161 …… 第9章 游标(教学视频:36分钟) 162 第10章 触发器(教学视频:58分钟) 178 第11章 序列(教学视频:28分钟) 206 第12章 用户角色与权限控制(教学视频:45分钟) 215 第三篇 Oracle中的SQL 第13章 Oracle数据类型(教学视频:21分钟) 231 第14章 Oracle中的函数与达式(教学视频:111分钟) 240 第15章 Oracle中的控制语句(教学视频:16分钟) 282 第16章 SQL查询(教学视频:55分钟) 290 第17章 SQL更新数据(教学视频:34分钟) 319 第四篇 Oracle编程高级应用 第18章 数据库速度优化与数据完整性(教学视频:32分钟) 332 第19章 数据一致性与事务管理(教学视频:46分钟) 341 第20章 并发控制(教学视频:35分钟) 356 第21章 Oracle中的正则达式(教学视频:29分钟) 369 第五篇 Oracle与编程语言综合使用实例 第22章 Oracle在Java开发中的应用(教学视频:38分钟) 376 第23章 Oracle在C#开发中的应用(教学视频:12分钟) 391

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧