3
SELECT 'COUNT=' + CONVERT(VARCHAR(64), COUNT(s.company)) AS sites
FROM site s
WHERE s.sitetype = 'om'
AND s.status = 1
EXCEPT
SELECT DISTINCT sg.company
FROM snmpmibdevice AS sdevice
JOIN site sg
ON sg.guid = sdevice.siteguid
JOIN snmpmibdata sdata
ON sdata.snmpmibdeviceguid = sdevice.snmpmibdeviceguid
WHERE sdata.sampletimestamp > Dateadd (mi, -15, Getutcdate())
AND sg.sitetype = 'OM'
基本上我試圖從此返回公司名稱的計數。如果我刪除了計數並選擇「S.Company」,我會得到2個值(我想「COUNT = 2」),但是計數會記錄爲34條記錄(COUNT = 34)。SQL:如何使用EXCEPT時得到COUNT
我將不勝感激任何幫助。謝謝!
[即時SQL格式化程序(http://www.dpriver.com/pp/sqlformat.htm)。用它。愛它。 – 2012-03-26 15:34:06
在這種情況下它並不重要,但是您希望計算多少行?:** VARCHAR(64)**?如果你有最寬的8字節bigint值'CONVERT(varchar(20),COUNT(s.company))'就足夠了。 – 2012-03-26 20:26:05
'... EXCEPT SELECT DISTINCT ...' - 你不需要'DISTINCT'關鍵字,因爲'EXCEPT'默認是'EXCEPT DISTINCT'(奇怪的是,SQL Server不支持顯式的'EXCEPT DISTINCT'和生成「不正確的語法」錯誤,而「EXCEPT ALL」生成更有意義的錯誤,「EXCEPT運算符的'ALL'版本不受支持」)。事實上,即使你想,也不能重寫'EXCEPT DISTINCT'即......'除了全部選擇...'還是會給你'DISTINCT'的結果......這是件好事:) – onedaywhen 2012-03-27 08:53:25