2011-08-18 80 views
3

我試圖獲得我的數據庫中每個不同字段的計數。例如,我們正在使用一種名爲sourceCodes的東西 - 我希望能夠看到我的數據庫中有多少個不同的sourceCode。到目前爲止,我有這個Sql Server 2005使用計數和明確在一起

SELECT sourceCode, COUNT(DISTINCT sourceCode) 
FROM [SecureOrders] 
WHERE DateTime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) 
    AND DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1) 
GROUP BY sourceCode 

(我試圖顯示源代碼的名稱,然後計數)。到目前爲止,我在第二欄中唯一得到的是「1」......而且我肯定有不止一個。我知道我很難說這個問題,但我無法想出任何其他方式來表達它。任何人都可以看到爲什麼發生這種情況?

回答

4

樣本中的「不同」未在正確的位置應用。通過SourceCode進行分組,您已經從該列獲得了不同的值。

所以,你只需要每個組中的數行:

SELECT sourceCode, COUNT(*) 
FROM [SecureOrders] 
WHERE DateTime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) 
    AND DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1) 
GROUP BY sourceCode 
+0

+1 ......你是額外快 – a1ex07

1

刪除DISTINCT:

SELECT sourceCode, COUNT(sourceCode) 
FROM [SecureOrders] 
WHERE DateTime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) 
    AND DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1) 
GROUP BY sourceCode