SELECT
f.hmis, sa.number_of_computers, sa.service_area
FROM
facility_service_area sa,
facility f
WHERE
f.hmis = sa.facility_hmis
hmis comp serv_area
80703 3 MCH
80706 1 LD
80701 2 ART
80701 3 ART
80701 2 LD
80701 3 LD
80701 2 MCH
80701 1 MCH
80702 4 MCH
80707 1 MCH
80707 4 MCH
我想总结每个hmis下每个指定服务区域内的所有计算机,结果如下所示。
hmis comp. Service_area
80703 3 MCH
80706 1 LD
80701 5 ART
80701 5 LD
80701 3 MCH
80702 4 MCH
80707 4 MCH
答案 0 :(得分:1)
{{1}}
答案 1 :(得分:1)
首先。 从不在FROM
子句中使用逗号。 始终使用正确的JOIN
语法。
您只想要一个GROUP BY
:
SELECT f.hmis, sa.service_area, SUM(sa.number_of_computers)
FROM facility_service_area sa JOIN
facility f
ON f.hmis = sa.facility_hmis
GROUP BY f.hmis, sa.service_area;
在聚合查询中,我几乎总是先将聚合列放在计算列之后。这有助于防止错误,因为很容易检查用于聚合的列是否与返回的列匹配。