使用按查询分组查找部门计数

时间:2017-11-21 11:49:59

标签: sql sql-server

我需要查找部门中存在的建筑物数量,因此我使用下面的查询

  select sil.Name, Count((select * from Common.Building where TypeCode=10012)), Count((select * from Common.Building where TypeCode=98)) from Common.Building ok
  join Skrs.Department sil on ok.DepartmentId=sil.Id
  group by sil.Name

这是sql错误消息:

  

"无法对包含的表达式执行聚合函数   聚合或子查询"

如何检索数据?

已编辑:样本数据:

Common.Buildings

DepartmentID    Name
35              Kurum Alt Birimleri
35              VEREM SAVAŞ DİSPANSERİ
6               DİĞER
5               SAĞLIK OCAĞI

Skrs.Department

Id  Adi
1   ADANA
2   ADIYAMAN
3   AFYONKARAHİSAR
4   AĞRI
5   AMASYA

1 个答案:

答案 0 :(得分:2)

我猜你想要这样的东西:

select sil.Name,
       sum(case when b.TypeCode = 10012 then 1 else 0 end),
       sum(case when b.TypeCode = 98 then 1 else 0 end)
from Common.Building b join
     Skrs.Department sil
     on b.DepartmentId = sil.Id
group by sil.Name;