我下面有三个查询,我想将它们组合成一个查询,这样我就得到了三列按县划分的结果。我尝试对所有表进行内部联接,但数据不正确。如何合并这三个查询并按县分组?
select [Total DLL Children] = SUM(cd.NumberOfLanguageSpeakers) from ClassroomDLL as cd inner join Classrooms as c on cd.Classroom_Id = c.Id inner join Sites as s on c.Site_Id = s.Id inner join Profiles as p on s.Profile_Id = p.Id inner join Counties as co on p.County_Id = co.Id group by co.Description select [Total Children] = (SUM(demo.NumberOfPreschoolers) + SUM(demo.NumberOfToddlers) + SUM(demo.NumberOfInfants)) from ClassroomDemographics as demo inner join Classrooms as c on demo.Classroom_Id = c.Id inner join Sites as s on c.Site_Id = s.Id inner join Profiles as p on s.Profile_Id = p.Id inner join Counties as co on p.County_Id = co.Id group By co.Description select co.Description from Counties as co group by co.Description
请尝试这个。基本上,每个子查询都需要返回County.Description,然后可以将它们连接在一起。
SELECT A.Description, B.[Total DLL Children], C.[Total Children] FROM ( select co.Description from Counties as co group by co.Description ) A LEFT JOIN ( select co.Description, [Total DLL Children] = SUM(cd.NumberOfLanguageSpeakers) from ClassroomDLL as cd inner join Classrooms as c on cd.Classroom_Id = c.Id inner join Sites as s on c.Site_Id = s.Id inner join Profiles as p on s.Profile_Id = p.Id inner join Counties as co on p.County_Id = co.Id group by co.Description ) B ON A.DESCRIPTION = B.DESCRIPTION LEFT JOIN ( select co.Description, [Total Children] = (SUM(demo.NumberOfPreschoolers) + SUM(demo.NumberOfToddlers) + SUM(demo.NumberOfInfants)) from ClassroomDemographics as demo inner join Classrooms as c on demo.Classroom_Id = c.Id inner join Sites as s on c.Site_Id = s.Id inner join Profiles as p on s.Profile_Id = p.Id inner join Counties as co on p.County_Id = co.Id group By co.Description ) C ON A.DESCRIPTION = C.DESCRIPTION