2013-06-11 53 views
1

基本上我做了查詢,也沒有工作 「消息156,級別15,狀態1,行關鍵字2 附近有語法錯誤FROM'」無法查詢查詢?

SELECT COUNT(*) 
FROM 
(
SELECT Group_ID, count(ID) 
FROM dbo.S1_Users 
WHERE Service_Plan = 'Multi User Foreign (B)' 
GROUP BY Group_ID 
HAVING count(ID) = 1 
) 

我知道它是簡單的固定和我搜索谷歌,但未能找到合適的人

任何機構可以解釋一下嗎?

+7

你是否錯過了一個結局paren? 'SELECT COUNT(*)'< - 注) –

+0

哦對不起,其實只是一個錯字,編輯 – user2438187

+0

你可能會失去內聯視圖內選擇的計數(ID),我應該考慮。 –

回答

5

您需要命名的虛擬表名稱從內部查詢的count(ID)

SELECT COUNT(*) 
FROM 
(
SELECT Group_ID, count(ID) as ID_Count 
FROM dbo.S1_Users 
WHERE Service_Plan = 'Multi User Foreign (B)' 
GROUP BY Group_ID 
HAVING count(ID) = 1 
) as A 

您也可以刪除計數完全感覺你不使用它

SELECT COUNT(*) 
FROM 
(
SELECT Group_ID 
FROM dbo.S1_Users 
WHERE Service_Plan = 'Multi User Foreign (B)' 
GROUP BY Group_ID 
HAVING count(ID) = 1 
) as A 
+0

謝謝,試過但是它說:Msg 8155,Level 16,State 2,Line 9 沒有爲'A'的第2列指定列名。 – user2438187

+0

看到我的更新,他們與您的原始2他們的錯誤。 –

+0

對不起,我張貼在錯誤的地方,非常感謝你的正確答案,但我可以問爲什麼這個工程? – user2438187

5

嘗試它像這個:

SELECT COUNT(*) 
FROM 
(
    SELECT Group_ID, count(ID) As cnt 
    FROM dbo.S1_Users 
    WHERE Service_Plan = 'Multi User Foreign (B)' 
    GROUP BY Group_ID 
    HAVING count(ID) = 1 
) A 
+0

它的作品!!! 但我可以問爲什麼我們需要別名在這種情況下? – user2438187

+1

你的代碼仍然不能工作,有第二個錯誤。 'count(ID)'需要一個名字。 –

+0

@ScottChamberlain是的,我錯過了內心COUNT(ID),雖然我沒有得到我的SQL Server出於某種原因的錯誤...?無論如何,我已經糾正它。 – RBarryYoung