ACCESS中SQL语句查询,高手请进,谢谢。

cnjsnt1995 2008-05-21 10:09:07
数据库包括三个表:学生表S(学号SNO,姓名SNAME,系名DEPART,性别SEX,出生日期DDATE)、
课程表C(课程编号CNO,课程名称CNAME)
成绩表SC(学号SNO,课程编号CNO,成绩GRAGE),按下列要求进行操作。

题目:1.根据S和SC表,查询所有不及格(GREDE小于60)的学生名单,要求输出SNO,SNMAE,不及格门数.
2.根据S和SC表,查询各系男女学生选课门数,要求输出DEPART、SEX、选课门数。
谢谢。
...全文
248 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-05-21
  • 打赏
  • 举报
回复
2
SELECT A.DEPART, A.SEX, SUM(IIF(SEX='男',1,0)) AS 男, SUM(IIF(SEX='女',1,0)) AS 女
FROM (SELECT A.DEPART,A.SEX
FROM S a INNER JOIN SC B ON A.SNO=B.SNO group by A.DEPART,A.SEX)
GROUP BY A.DEPART, A.SEX;

wwwwb 2008-05-21
  • 打赏
  • 举报
回复
2
SELECT A.DEPART, A.SEX, SUM(IIF(SEX='男',1,0)) AS 男,SUM(IIF(SEX='女',1,0)) AS 女
FROM [SELECT A.DEPART,A.SEX
FROM S a INNER JOIN SC B ON A.SNO=B.SNO group by A.DEPART,A.SEX]. AS [%$##@_Alias]
GROUP BY A.DEPART, A.SEX;

1
SELECT A.SNO, A.SNAME, COUNT(*)
FROM S AS A INNER JOIN SC AS B ON A.SNO=B.SNO
WHERE B.GRAGE <60 or isnull(B.GRAGE)
GROUP BY A.SNO, A.SNAME;

结果是否正确?
cnjsnt1995 2008-05-21
  • 打赏
  • 举报
回复
学生成绩.mdb 我已经上传到http://www.access911.net/csdn/
谢谢.
wwwwb 2008-05-21
  • 打赏
  • 举报
回复
问题1、2的正确结果?
cnjsnt1995 2008-05-21
  • 打赏
  • 举报
回复
s表:
SNO SNAME DEPART SEX DDATE
C005 张雷 计算机 男 1983-6-30
C008 王宁 计算机 女 1982-8-20
A041 周光明 自动控制 男 1982-8-10
M038 李霞霞 应用数学 女 1984-10-20
R098 钱欣 管理工程 男 1982-5-16

c表
CNO CNAME
CC112 软件工程
CS202 数据库
EE103 控制工程
ME234 数学分析
MS211 人工智能

sc表:
SNO CNO GRAGE
C005 CC112 84.5
C005 CS202 82
A041 CC112 92
M038 ME234 85
A041 ME234 92.5
A041 MS211 90
R098 MS211 70.5
R098 CS202
M038 CC110 56
A041 CC110 52
C005 MS211 40

谢谢。


wwwwb 2008-05-21
  • 打赏
  • 举报
回复
最好将记录及正确结果贴出来以供测试,OR 直接上传MDB到
www.access911.net/csdn
wwwwb 2008-05-21
  • 打赏
  • 举报
回复
将表及要求结果贴出来看看
1、TRY

SELECT A.SNO,A.SNAME,COUNT(*) FROM S A INNER JOIN SC B ON A.SNO=B.SNO
WHERE B.GRAGE<60
GROUP BY A.SNO,A.SNAME

2、
SELECT A.DEPART,A.SEX,SUM(IIF(SEX=1,1,0)) AS 男,
SUM(IIF(SEX=0,1,0)) AS 女 FROM S INNER JOIN SC B ON A.SNO=B.SNO
cnjsnt1995 2008-05-21
  • 打赏
  • 举报
回复
liuyann的答案完全正确。而且简洁易懂。
wwwwb很热心,答案有些复杂,好象有些问题。但====思想重于技巧====
非常谢谢两位高手朋友。
WWWWA 2008-05-21
  • 打赏
  • 举报
回复
因SC表中的记录有重复
wwwwb 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 liuyann 的回复:]
2.根据S和SC表,查询各系男女学生选课门数,要求输出DEPART、SEX、选课门数。

SQL codeselectDEPART,SEX,count(*)as选课门数fromS,SCwhereS.SNO=SC.SNOgroupbyDEPART,SEX
====思想重于技巧====

reply via CSDN viewer
[/Quote]
呵呵,有点问题哦
liuyann 2008-05-21
  • 打赏
  • 举报
回复

2.根据S和SC表,查询各系男女学生选课门数,要求输出DEPART、SEX、选课门数。

select DEPART,SEX,count(*) as 选课门数
from S,SC
where S.SNO = SC.SNO
group by DEPART,SEX


==== ====

liuyann 2008-05-21
  • 打赏
  • 举报
回复

你的考试还没完啊

1.根据S和SC表,查询所有不及格(GREDE小于60)的学生名单,要求输出SNO,SNMAE,不及格门数.

select S.SNO,S.SNMAE,count(*)
from S,SC
where S.SNO = SC.SNO
and GRAGE<60
group by S.SNO,S.SNMAE


==== ====

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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