主表
SerNo HospitalId CityId
1 1 1
2 1 1
3 2 2
4 3 2
5 1 1
HospitalMaster
HospitalId HospitalName
1 ABC
2 XYZ
CityMaster
CityId City
1 Delhi
2 Bombay
结果 我需要这样的东西
City TotalHospital
Delhi 1
Bombay 2
我尝试加入表格,但我不断得到列的总行而不是医院。 谢谢。
答案 0 :(得分:1)
将城市主表连接到子查询,该子查询查找每个城市的医院数。请注意,我们只统计不同的医院,因为医院城市关系可能在主表中出现不止一次。
SELECT t1.City, COALESCE(t2.cnt, 0) AS TotalHospital
FROM CityMaster t1
LEFT JOIN
(
SELECT CityId, COUNT(DISTINCT HospitalId) cnt
FROM Master
GROUP BY CityID
) t2
ON t1.CityId = t2.CityId;
答案 1 :(得分:0)
您可以申请join
select M.City,count(distinct M.HospitalId) from CityMaster C inner join Master M ON C.CityId = M.CityId
group by M.City
答案 2 :(得分:0)
试试这个:
SELECT C.City,COUNT(DISTINCT HospitalID)TotalHospital
FROM CityMaster C
JOIN Master_table M ON M.CityId=C.CityId
GROUP BY C.City
答案 3 :(得分:0)
您可以使用JOIN
来完成
只需用表名替换#city,#hospital,#table。
select C.City,T.CityId from #city C,#hosp H,#table T WHERE T.CityId = C.CityId AND T.HospitalId = H.HospitalId Group by C.City,T.CityId
答案 4 :(得分:0)
由于我们需要城市名称和计数,我们可以通过加入城市主人和主表来获得。
spch(i,match)
{
alert(i);
alert(match);
}