【发布时间】:2015-02-14 23:04:25
【问题描述】:
好的,现在正在处理 SQL 2012 中的查询以连接两个表并获得计数。计数是与主要公司关联的公司数量。此列表存在于同一个表 Contact 中,并且它们都连接在一起,因为主要公司的 ID 在辅助公司中列为 CompanyID。如果主服务器至少有 1 个辅助服务器,我可以获得计数,但如果主服务器没有辅助服务器,我似乎无法计数,我需要显示 0 值。这是我的 SQL 查询:
SELECT c.ID, c.Company, c.Category, COUNT(c1.ID) AS Secondaries
FROM Contact AS c INNER JOIN Contact AS c1 ON c.ID = c1.CompanyId
WHERE (c.MemberType = 'ORG_M') AND (c1.MemberType = 'ORG_M')
GROUP BY c.ID, c.Company, c.Category
执行此操作时,我会返回以下信息:
ID Company Category Count
1 Company 1 RS_1 1
2 Company 2 RS_1 1
3 Company 3 RS_1 1
4 Company 4 RS_1 1
我缺少的是 0 值,如果公司存在于公司表中但没有与之关联的二级公司。我怎么得到它?
【问题讨论】:
-
将
INNER JOIN更改为LEFT JOIN应该会覆盖它。
标签: sql sql-server join count