此功能查询语句如何写

此功能查询语句怎么写
举例 数据库结构大致才如下:
表名:一班
姓名   职称
张三   土建工程师
李四   计算机工程师 
王五   土建工程师

表名:二班
姓名   职称
张三1   土建工程师
李四1   计算机工程师 
王五1   计算机工程师 

最终生成的表的结构如下:
 职称           一班人数  二班人数
土建工程师      2           1
计算机工程师    1            2

生成的表想用一句代码来实现  怎么实现 ?

------解决方案--------------------
1.用
select 姓名, 职称, '一班' [班别] from 一班
union all
select 姓名, 职称, '二班' from 二班
使其成为一个表

2.用
select case 班别 when '一班' then count(*) else 0 end 一班人数,
case 班别 when '二班' then count(*) else 0 end 二班人数
这个技巧,将一班人数和二班人数分列

------解决方案--------------------
select isnull(a.职称, b.职称) 职称, 一班人数, 二班人数 from 
(select 职称, count(*) 一班人数 from 一班 group by 职称) a
full join
(select 职称, count(*) 二班人数 from 二班 group by 职称) b
on a.职称=b.职称