2013-06-25 2 views
2

J'utilise sql server 2008. J'ai trois tablesA table, tableB et table C.Dans le tableau A, j'ai deux colonnes on est Employeeid et une autre est Projectid.In table B, j'ai deux colonnes on est employeeid et une autre l'un est Employeename.In table C, j'ai deux colonnes l'un est projectid et le prochain est le nom du projet.Comment afficher les lignes non communes dans sql server 2008?

i utilisé requête suivante pour afficher des lignes non communes de tableA et le tableau B (Unmatched EMPLOYEEID)

SELECT A.EmployeeID FROM A 
    EXCEPT 
    SELECT B.EmployeeID FROM B 

Je veux afficher projectname également, en plus de EMPLOYEEID. i.e.) J'ai besoin comme ceci:

Employeeid|projectname 
    1   |ABC 
    2   |XYZ 

Quelqu'un peut-il me dire comment faire en utilisant le serveur SQL 2008?

+0

Classiquement (ce qui signifie « pas * dans * commun ») « non-commun » est le terme utilisé ici, plutôt que des « rares » (qui signifie habituellement "pas commun"). – RBarryYoung

Répondre

5

Je voudrais simplement utiliser un NOT EXISTS pour cela:

SELECT A.EmployeeID, C.ProjectName 
FROM A 
INNER JOIN C 
    ON A.ProjectID = C.ProjectID 
WHERE NOT EXISTS (SELECT 1 FROM B WHERE EmployeeID = A.EmployeeID) 
+0

: je veux le nom du projet qui est dans la table c. – Marsh

+0

@Marsh voir la modification. C'est une simple inscription – JNK

+0

: merci jnk.it a bien fonctionné. – Marsh

Questions connexes