当前位置: 代码迷 >> Oracle开发 >> 在线求sql话语
  详细解决方案

在线求sql话语

热度:65   发布时间:2016-04-24 07:05:39.0
在线求sql语句
SELECT  "TY".QUANZHONGNAME typeID, Count("CO".COMPANYID) typecount
FROM QY.COMPANYTYPE "TY" left   join  QY.COMPANY "CO"
on "TY".COMPANYTYPEID = "CO".COMPANYTYPEID
WHERE
CO.BUILDID = 11
GROUP BY "TY".QUANZHONGNAME

左关联查询,COMPANYTYPE 表中有10条类型记录,
我想统计 COMPANY中 关于有这10条类型的记录数,
但是查询后的结果只显示了在COMPANY中有关联的记录数,
商贸 1
金融 1
创意 1
住宿 1
旅游 1
医疗 1


我想要的是:

餐饮 0
商贸 1
物业管理 0
房地产 0
休闲娱乐 0
物流 1
软件外包 0
金融 1
家政服务 0
科技研发 0
创意 1
信息服务 0
住宿 1
教育培训 0
旅游 1
医疗 1
会展 0
中介服务 0
体育健身 0


为什么添加了where条件就只能查询到几个!为什么呢!!
sql 语句

------解决方案--------------------
楼主,这段给限制住了 WHERE CO.BUILDID = 11
可以改成
SELECT  "TY".QUANZHONGNAME typeID, Count("CO".COMPANYID) typecount
FROM QY.COMPANYTYPE "TY" left   join  (select * from QY.COMPANY WHERE
BUILDID = 11
)"CO"
on "TY".COMPANYTYPEID = "CO".COMPANYTYPEID
GROUP BY "TY".QUANZHONGNAME

------解决方案--------------------
因为你的条件是右表字段过滤 肯定会对结果有影响 
  相关解决方案