日期:2014-05-17  浏览次数:20605 次

请帮看一下这个统计语句该怎么写
A表字段                             
班级   注册人数     
1      40
2      50
3      60

B表字段
班级      姓名
1          name1
1          name2
2          name3


现在想统计形成以下的报表
班级    注册人数     实际人数
1          40         2
2          50         1
3          60         0

就是B表中无班级3的人名,但是也需要在报表中体现班级3实际人数是零

请问这个SQL语句该怎么写啊? 请大家帮我

------解决方案--------------------
select a.班级,a.注册人数,isnull(b.cnt,0) as 实际人数
from A
left join (select 班级,count(*) as cnt from B group by 班级) as b
on a.班级=b.班级

------解决方案--------------------
SELECT
a.班级,
a.注册人数,
实际人数 = COUNT(B.班级)
FROM tbA a
LEFT JOIN tbB b
ON a.班级 = b.班级
GROUP BY a.班级, a.注册人数