我在db名称,reg_no,sem,backlog和department中有4个学期的数据。 学生只有在第1学期,第2学期没有积压,第3学期和第4学期积压的总和少于4才有资格。
我想获取那些没有资格的学生的记录。
示例:-data格式为
name|reg_no|sem|backlog|department|
s1 |01 |1 |0 |cs |
s2 |02 |1 |1 |cs |
s3 |03 |1 |0 |cs |
s1 |01 |2 |0 |cs |
s2 |02 |2 |0 |cs |
s3 |03 |2 |0 |cs |
s1 |01 |3 |0 |cs |
s2 |02 |3 |0 |cs |
s3 |03 |3 |3 |cs |
s1 |01 |4 |0 |cs |
s2 |02 |4 |0 |cs |
s3 |03 |4 |3 |cs |
我需要这种格式的结果
输出应该采用这种形式,因为s2在第一学期有积压 和s3有4个积压更多。
name|reg_no|sum(blacklog)|department|
s2 |02 |1 |cs |
s3 |03 |6 |cs |
我正在使用此查询。
SELECT reg_no
FROM exam
where sem<3 and reg_no In(
SELECT reg_no
FROM exam
where sem<5
and department='dpt'
and year='2018-2019'
group by reg_no
having sum(backlog)>=0
order by reg_no)
group by reg_no
having sum(backlog)!=0
只有当它有总和(blg)时才给我第3和第4学期总和(blg)结果!= 0它不给出结果。
请帮助我道歉,我无法描述我的疑问。