我有以下三个查询,我想将它们组合成一个查询,所以我得到三列结果按县。我尝试与所有表进行内部联接,但是我得到的数据不好。如何将这三个查询组合在一起并按县分组?
select co.Description
from Counties as co
group by co.Description
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
答案 0 :(得分:1)
您可以使用子查询
来完成 select co.Description, demo.[Total Children], cd.[Total DLL Children]
from Classrooms as c
left outer join (select SUM(NumberOfPreschoolers) + SUM(NumberOfToddlers) + SUM(NumberOfInfants) as [Total Children], Classroom_id
from ClassroomDemographics group by Classroom_id) as demo on demo.Classroom_id = c.Id
left outer join (select SUM(NumberOfLanguageSpeakers) as [Total DLL Children], Classroom_id
from ClassroomDLL group by Classroom_id) as cd 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