1.查出缺考同学姓名(任意一门课缺考都算缺考)

来源:百度知道 编辑:UC知道 时间:2024/07/04 04:39:03
表结构是这样的:
1 zhangsan java程序 100
2 zhangsan sql数据库 70
3 zhangsan 英语 85
4 lisi java程序 90
5 lisi sql数据库 99
6 lisi 英语 75
7 wangwu java程序 100
8 wangwu 英语 100

1.查出缺考同学姓名(任意一门课缺考都算缺考)的sql语句

如果你只要缺考同学姓名,可以这样写

select studentName
from table_name
group by studentName,考试科目
having 科目<考试科目总数

如果你写个视图可能更简单,可以把每个学生考试的总门数和实际考试的科目数列出来,按人和科目分组统计即可。

假设有一考生 testme,缺考英语,表中是记录为 testme 英语 null 还是还是 testme 英语 -1 还是根本就不会有这么一条记录?记录分数的字段是什么数据类型?整数?字符串?(假设为整数好了)

另外有无同名的考生存在?(算了,就假设没有同名的考生)

假设字段名是id student course score,表名是test_tbl

如果是null
select DISTINCT student from test_tbl where score is null

如果是-1
select DISTINCT student from test_tbl where score=-1

如果缺考就不记录入表的:

缺少一到二门的,
select distinct student from test_tbl as t where (select count(id) from test_tbl where test_tbl.student=t.student)<3

全部缺考的,你得提供另一分包含全部考生姓名的表