2011-09-27 29 views
-3

我得到的錯誤,不正確的語法關鍵字接近「WHERE」錯誤時表

所有我想要做的是使用一些列從另一個表

SELECT unitCode, studentID, s.studentFName 
FROM Student As S Right outer Join  
     (SELECT unitCode, studentID, 
      SUM(CASE WHEN subStatus = 'Yes' THEN 1 ELSE 0 END) AS CountYes, 
      SUM(CASE WHEN subStatus = 'No' THEN 1 ELSE 0 END) AS CountNo 
     FROM Assignment 
     GROUP BY unitCode, studentID) 
WHERE (CountNo > 0) AND (CountYes = 0) AND s.studentID = assignment.studentID 
+0

不是有缺失右括號在最後? –

+1

@BenClayton:不,不存在:-) –

+0

@David:你爲什麼從這個問題中刪除了這些陳述,並試圖從我的答案中刪除它? –

回答

2

子選擇必須有一個別名SQL Server。

更改此:

OUTER JOIN (SELECT ...) 

這樣:

OUTER JOIN (SELECT ...) T1 
+0

正如丹尼爾提到的那樣,失蹤了...... –

3

您加入缺少了ON clause和子查詢缺少別名:

SELECT 
    unitCode, studentID, s.studentFName 
FROM 
    Student As S 
    Right outer Join  
    (
     SELECT 
      unitCode, studentID, 
      SUM(CASE WHEN subStatus = 'Yes' THEN 1 ELSE 0 END) AS CountYes, 
      SUM(CASE WHEN subStatus = 'No' THEN 1 ELSE 0 END) AS CountNo 
     FROM 
      Assignment 
     GROUP BY unitCode, studentID 
    ) as assignment 
    on s.studentID = assignment.studentID 
WHERE 
    (CountNo > 0) AND (CountYes = 0) 
;