我有以下兩個查詢下面,總是回來不同的結果,但我在每個查詢以相同的方式添加總和。爲什麼總回來不同?SQL查詢總結帶來不同的結果
select [Total Children] = (SUM(demo.NumberOfPreschoolers) + SUM(demo.NumberOfToddlers) + SUM(demo.NumberOfInfants)),
County = co.Description
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 Dictionary.Counties as co on p.County_Id = co.Id
where co.Description = 'MyCounty'
Group By co.Description
select [Number Of DLL Children] = SUM(cd.NumberOfLanguageSpeakers),
[Total Children] = (SUM(demo.NumberOfPreschoolers) + SUM(demo.NumberOfToddlers) + SUM(demo.NumberOfInfants)),
County = co.Description
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 Dictionary.Counties as co on p.County_Id = co.Id
inner join ClassroomDemographics as demo on c.Id = demo.Classroom_Id
where co.Description = 'MyCounty'
Group by co.Description
請注意,第二個查詢有一個額外的內部聯接。兩個結果集中的行數是否相等? – cdlong 2013-03-27 15:31:47
每個結果集中只有一行,第二個查詢有三列信息,第一個查詢只有兩列信息。額外的內部連接應該在第二個查詢中,因爲我需要額外的信息列。 – user1220099 2013-03-27 15:33:19
對不起,只是爲了澄清,你是否曾嘗試在兩個查詢上運行原始選擇(沒有聚合),並驗證結果集具有相同數量的記錄。基本上只是詢問@Brandon Moretz的回答如下。 – cdlong 2013-03-27 15:34:41