sql 求救 分不多 30分送

uffeng 2003-08-30 02:38:26
数据库名:Study
表1:Student(学生表)
StudentID Char(4) 学生ID
StudentName Varchar(20) 学生姓名
表2:Class(课程表)
ClassID Char(4) 课程号
ClassName Varchar(50) 课程名
表3:StuCls
ClassID Char(4) 课程号 是CLASS的外键
StudentID Char(4) 学生ID 是Student的外键
Pass Int 成绩


题目1 查询未参加考试的学员信息(学员ID,姓名) 就是没有成绩的
查询2:分组显示学生各科成绩及该生的学科总分,及所有参考学员各科成绩总分(rollup)
sql 语句 谢谢
...全文
70 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
uffeng 2003-08-30
  • 打赏
  • 举报
回复
3 不对的说
zjcxc 元老 2003-08-30
  • 打赏
  • 举报
回复
4.
select a.ClassID,b.ClassName,Pass=sum(a.Pass)
from StuCls a inner join Class b on a.ClassID=b.ClassID
zjcxc 元老 2003-08-30
  • 打赏
  • 举报
回复
呵呵,楼主考试啊.

3.
select a.StudentID,a.StudentName,b.ClassName,c.Pass
from StuCls c
right join Student a on c.StudentID=a.StudentID
inner join Class b on c.ClassID=a.ClassID
uffeng 2003-08-30
  • 打赏
  • 举报
回复
3 :查询所有学员(包含未参加考试的学员)信息(学员ID,姓名,考试科目,成绩)
4 :分组统计各科成绩的总分
zjcxc 元老 2003-08-30
  • 打赏
  • 举报
回复
1.
select * from student where studentid not in(select studentid from stucls)


2.

select a.studentid
,studentname=case when grouping(a.studentid)=1 then ' 总分 '
else a.studentname end
,b.classid
,classname=case when grouping(b.classid)=1 then '学科总分'
else b.classname end
,pass=sum(c.pass)
from stucls c
inner join study a on a.studentid=c.studentid
inner join class b on a.ClassID=c.ClassID
group by a.studentid,a.studentname,b.classid,b.classname with rollup
having not((grouping(a.studentid)=0 and grouping(a.studentname)=1)
or (grouping(b.classid)=0 and grouping(b.classname)=1))
pengdali 2003-08-30
  • 打赏
  • 举报
回复
题目1 查询未参加考试的学员信息(学员ID,姓名) 就是没有成绩的
select * from Student where StudentID not in (select StudentID from StuCls)
txlicenhe 2003-08-30
  • 打赏
  • 举报
回复
1: Select * from student where studentid not in (select studentid from StuCls)
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在C++编程中,消息框是与用户交互的常用界面元素,它允许程序向用户展示信息,并根据用户的响应进行处理。MessageBox() 函数是Windows应用程序中实现消息框功能的标准接口,属于Windows API的一部分。本文将详细介绍MessageBox()函数的使用方法,包括常用属性、按钮形式和返回值等知识点。 MessageBox() 函数的基本语法结构如下: 其中,参数uType是一个整型值,通过组合不同的标志来定义消息框的按钮、图标等特性。常用属性包括消息框中显示的按钮以及附加的图标,例如: MB_OK:仅显示一个确定按钮。 MB_OKCANCEL:显示确定和取消按钮。 MB_YESNO:显示是和否按钮。 MB_YESNOCANCEL:显示是、否和取消按钮。 图标属性可以与按钮属性组合使用,为用户提供额外的视觉信息: MB_ICONEXCLAMATION 或 MB_ICONWARNING:显示感叹号警告图标。 MB_ICONASTERISK 或 MB_ICONINFORMATION:显示信息图标。 MB_ICONQUESTION:显示询问图标的问号。 MB_ICONERROR 或 MB_ICONHAND 或 MB_ICONSTOP:显示错误图标。 返回值方面,MessageBox() 函数执行后会返回一个整数值,代表用户点击了哪一个按钮。这个返回值可以与预定义的标识符进行比较,以判断用户的操作: IDCANCEL:用户点击了取消按钮。 IDNO:用户点击了否按钮。 IDOK:用户点击了确定按钮。 IDYES:用户点击了是按钮。 在使用MessageBox()函数时,需要特别注意字符编码问题。由于Visual C++ 2005默认使用Unicode字符集,当源代码使用的是ANSI

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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