2013-03-27 125 views
0

我有三個查詢下面,我想將它們合併成一個查詢,所以我得到三個縣的結果列。我嘗試了與所有表的內部連接,但是我收到了錯誤的數據。我如何結合這三個查詢和縣組?SQL查詢合併

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

我們在談論什麼口味的SQL辦呢? – 2013-03-27 17:21:49

+1

與以前的問題有什麼不同? http://stackoverflow.com/questions/15663727/how-to-combine-three-sql-selects-into-one-query – Taryn 2013-03-27 17:24:31

回答

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