access SQL查询的问题

首先感谢各位无私的帮助
若学生成绩表 的结构改为 (学号,姓名,性别,科目,成绩,是否缺考)
(1)每位学生都有三条记录 分别记录 语文、数学、外语 三门科目的成绩
(2)若有缺考 分数记为0分,同时标记“缺考”
(3)对于每门单科60分算及格
(3)对于每个学生 无缺考,满分180分以上 且 无一门单科成绩小于50分 为合格

需要求得
(1) (性别,学生数,及格学生数,合格率) 即不同性别学生的总数,及合格人数、合格率
(2) (科目,实考学生数,合格学生数,合格率) 即每门科目实考学生中的合格率

SQL查询语句怎么写?谢谢
你好 谢谢doif无私的帮助 由于初来百度 所以分数还较少 请见谅 我已提高分数
对于解答 我还是有几个疑问
(1)count(学号) as 学生数,由于每位学生不同科目都有不同的记录,例如某个学生语数外三门,count(学号)似乎得到的答案是3,而实际为1个学号 能否加DISTINCT
(2)sum(case when ..then .. else ..end)的语句在SQL中我知道,但access中似乎不支持,请问该如何改写? 谢谢

第1个回答  推荐于2020-12-28
首先说 分数太少啦

先说思路 先求合格人数,再汇总

(1)

select 性别,count(学号) as 学生数,sum(case when 缺考科数 <=0 and 总成绩 > 180 and 小于50分科数 = 0 then 1 else 0 end) as 合格学生数,sum(case when 缺考科数 <=0 and 总成绩 > 180 and 小于50分科数 = 0 then 1 else 0 end) as 合格学生数/count(学号) * 100 as 合格率 from
(select 性别,学号
sum(case when 是否缺考 = 缺考 then 1 else 0 end) as 缺考科数
sum(成绩) as 总成绩,
sum(case when 成绩<50 then 1 else 0 end) as 小于50分科数
group by 性别,学号)a

手里没有环境,写的是 sqlserver的语法,下个题也是一个思路,有问题QQ留言,一会要出去了,QQ35910325本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网