有人可以解釋爲什麼如果我使用SELF JOIN和COUNT,它會給我不同的結果,而不僅僅是使用COUNT命令嗎? 與ControlNo
同一列。列中的值不是唯一的。 此查詢給我總計數15586
。爲什麼使用COUNT和SELF JOIN給出不同的結果值
select (Select COUNT(ControlNo)
from tblQuotes Q1
where Q1.ControlNo = a.ControlNo
) QuotedTotal
FROM tblQuotes a
inner join lstlines l on a.LineGUID = l.LineGUID
where l.LineName = 'EARTHQUAKE' AND YEAR(EffectiveDate) = 2016
不過,如果我運行此查詢它給我的15095
總計數。
select COUNT(ControlNo) as QuotedTotal
from tblQuotes a
inner join lstlines l on a.LineGUID = l.LineGUID
where l.LineName = 'EARTHQUAKE' AND YEAR(EffectiveDate) = 2016
究竟改變總量,爲什麼? 爲什麼我會使用第一種情況? 而且有什麼辦法可以修改第一個查詢來得到15586
的總和而不會被每行破壞? 謝謝
如果你首先共享表格結構將會有所幫助。 ControlNo是一個獨特的領域嗎?看起來'tblQuotes'中有一些行共享'ControlNo'字段中的值,但並不是所有的行都與'lstlines'表連接。你需要將這些數據計算在內嗎? – Andrew
'ControlNo'列不是唯一的,這可能是結果不同的原因。 – Oleg