我整个下午都在想办法解决这个问题。我什至不确定当前的数据库结构是否可行。我已经尝试了以下语句,但它没有返回我需要的内容。下面语句的问题是它只返回 projectType 如果它存在。如果 projectType 不存在,我需要返回零。任何帮助深表感谢。
SELECT r.region, ISNULL(o.totalcount,0) AS TotalCount, o.projectType
FROM region r
LEFT JOIN (
SELECT COUNT(o2.id) AS TotalCount, o2.regionID, t2.projectType
FROM projects o2
RIGHT JOIN projectTypes t2 on o2.typeID = t2.id
GROUP BY o2.regionId, t2.projectType
) o ON r.id = o.regionId
ORDER by r.Region
地区: ------------------------- 编号 | 地区 | ------------------------- 1 | 东 | ------------------------- 2 | 中西部 | ------------------------- 3 | 西 | ------------------------- 项目类型: ------------------------- 编号 | 项目类型 | ------------------------- 1 | 网页设计 | ------------------------- 2 | 数据库 | ------------------------- 3 | 发展 | ------------------------- 项目: -------------------------------------------------- ---------------------- 编号 | 项目名称 | 地区ID | 项目类型ID | 发表于 | -------------------------------------------------- ---------------------- 1 | 项目 1 | 1 | 2 | 2012-09-02 | -------------------------------------------------- ---------------------- 2 | 项目 2 | 2 | 2 | 2012-09-02 | -------------------------------------------------- ---------------------- 3 | 项目 3 | 1 | 1 | 2012-09-02 | -------------------------------------------------- ---------------------- 4 | 项目 4 | 3 | 2 | 2012-09-02 | -------------------------------------------------- ---------------------- 5 | 项目 5 | 3 | 1 | 2012-10-02 | -------------------------------------------------- ---------------------- 6 | 项目 6 | 3 | 2 | 2012-10-02 | -------------------------------------------------- ---------------------- 7 | 项目 7 | 3 | 3 | 2012-10-02 | -------------------------------------------------- ---------------------- 8 | 项目 8 | 2 | 3 | 2012-10-02 | -------------------------------------------------- ---------------------- 9 | 项目 9 | 1 | 2 | 2012-10-02 | -------------------------------------------------- ---------------------- 10 | 项目 10 | 1 | 2 | 2012-10-02 | -------------------------------------------------- ---------------------- 期望的结果: ----------------------------------------- 地区 | 项目类型 | 总数 | ----------------------------------------- 东 | 网页设计 | 1 | ----------------------------------------- 东 | 数据库 | 3 | ----------------------------------------- 东 | 发展 | 0 | ----------------------------------------- 中西部 | 网页设计 | 0 | ----------------------------------------- 中西部 | 数据库 | 2 | ----------------------------------------- 中西部 | 发展 | 1 | ----------------------------------------- 西 | 网页设计 | 1 | ----------------------------------------- 西 | 数据库 | 2 | ----------------------------------------- 西 | 发展 | 1 | -----------------------------------------