请教一条sql语句

antoversky 2003-09-12 05:57:00
一个成绩库中有 --学生基本信息表(学号,学院),学生成绩表(学号,课程号,成绩,学期)
我需要按学院统计各年级的总人数和不及格人次(某一个学期统计)
不知用一条sql语句怎么写
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hilldotnet 2003-09-14
  • 打赏
  • 举报
回复
如果学生基本信息表中有学生不在学生成绩表中,那这个表结构有问题或者说你的要求不可能实现,即总人数无法求出,两表不存在这种依赖关系。
happy_0325 2003-09-13
  • 打赏
  • 举报
回复
SELECT 学院,COUNT(学号) as '总人数', FROM 学生基本信息表
GROUP BY 学院
这个结果集是A表
antoversky 2003-09-13
  • 打赏
  • 举报
回复
楼上的老兄,A表里没有总人数
XiaoCsharp 2003-09-12
  • 打赏
  • 举报
回复
SELECT A.学院,A.总人数,B.不合格人数
FROM (SELECT 学院,COUNT(学号) as '总人数',
FROM 学生基本信息表
GROUP BY 学院) AS A LEFT OUTER JOIN
( SELECT a.学院,COUNT(b.学号) as '不合格人数'
FROM 学生基本信息表 a inner join 学生成绩表 b on a.学号=b.学号
WHERE b.学期='某学期' and b.成绩 < 60
GROUP BY a.学院) AS B ON A.学院=B.学院

antoversky 2003-09-12
  • 打赏
  • 举报
回复
up
antoversky 2003-09-12
  • 打赏
  • 举报
回复
可是这样的话,第二列(总人数)就是参加考试的总人次了
大健 2003-09-12
  • 打赏
  • 举报
回复
SELECT a.学院,COUNT(b.学号) as '总人数',
SUM(CASE WHEN b.成绩 < 60 THEN 1 ELSE 0 END) AS '不合格人数'
FROM 学生基本信息表 a,学生成绩表 b
WHERE a.学号=b.学号 AND b.学期='某学期'
GROUP BY a.学院

34,576

社区成员

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

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