我正在尝试根据在第二张桌子上每个班级注册的学生数量来显示表格中的数据。 例如:
表1:
ClassID: SLN: Capacity:
1 ABCD 4
2 EFGH 20
3 IJKL 25
4 MNOP 20
5 QRST 25
6 UVWX 25
表2:
StudentID: Class:
1 ABCD
3 DCAB
2 ABCD
4 ABCD
5 ABCD
6 EFGH
所以我想要的输出是:
ClassID: SLN: Capacity:
2 EFGH 20
3 IJKL 25
4 MNOP 20
5 QRST 25
6 UVWX 25
所以类可以出现在一个表中但不能出现在另一个表中。我不希望表2中的类不在表1中,但我确实需要表1中的类而不是表2.我也不希望显示完整的类。 感谢
答案 0 :(得分:1)
如果我理解您的要求是正确的,我认为您可以使用以下内容:
select t1.classid, t1.sln, t1.capacity
from table1 t1
where not exists (select 1 -- classes not in table2
from table2 t2
where t1.sln = t2.class)
or t1.capacity > (select count(*) -- classes where capacity not met
from table2 t2
where t1.sln = t2.class
group by class);