日期:2014-05-19  浏览次数:20664 次

请问一条sql语句
有三张表
表一老师表t(id,name)
表二学生表c(id,name)
表三关系表r(idt,idc,class),idt表示老师id,idc表示学生id,class分大班与小班
用一条select语句实现!
找出老师的名字,条件是   满足老师教的大班的学生数大于教的小班的学生数

------解决方案--------------------
Select name From
(
Select
A.name,
SUM(Case class When '大班 ' Then 1 Else 0 End) As 大班学生数,
SUM(Case class When '小班 ' Then 1 Else 0 End) As 小班学生数
From
t
Inner Join
r
On
A.id =B.idt
Group By
A.name
) C
Where 大班学生数 > 小班学生数
------解决方案--------------------
select name from t
where id in
(
select idt
from r
group by idt
having sum(case class when '大班 ' then 1 end)> sum(case class when '小班 ' then 1 end)
)