2011-09-27 3 views
-3

Je reçois l'erreur, syntaxe incorrecte près du mot-clé « WHERE »Erreur lors de l'assemblage Table

Tout ce que je veux faire est d'utiliser des colonnes d'une autre table

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

est-il pas un manque droite juste à la fin? –

+1

@BenClayton: Non, il n'y a pas :-) –

+0

@David: Pourquoi avez-vous supprimé les déclarations de la question et essayé de le supprimer de ma réponse? –

Répondre

2

subselects doivent avoir un alias dans Serveur SQL.

Modifier ceci:

OUTER JOIN (SELECT ...) 

à ceci:

OUTER JOIN (SELECT ...) T1 
+0

Et manquant ON comme Daniel l'a mentionné ... –

3

Votre rejoindre manque son ON clause et la subselect manque l'alias:

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) 
; 
Questions connexes