读书人

请帮看一下这个统计语句该如何写

发布时间: 2013-08-09 15:16:24 作者: rapoo

请帮看一下这个统计语句该怎么写
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.注册人数

读书人网 >SQL Server

热点推荐