2013-06-21 3 views
0

Mon employé TableauComment obtenir le résultat suivant pour mon SQL?

EMPLOYEEID, EMPLOYEENAME 

Mon CallReportEmployee Tableau

ReportID, EMPLOYEEID 

Mon rapport Tableau

ReportID , ReportName 

Quand je veux est que je veux montrer tout le nom de l'employé, quand les na pas choisissez ReportID 1

1 rapport peut composé de nombreux employés

Comment puis-je un tel résultat est que je veux répertorier tous les employés avec ReportID un et non 1?

EMPLOYEENAME REPORTID 
Roger    1 
Peter    1 
Shawn    NULL 
Peter    NULL 

J'essaie cela, ça n'a pas

SELECT rc.EmployeeID, rc.ReportID, e.FirstName 
FROM employee e 
LEFT JOIN callreportemployee rc ON e.ID = rc.EmployeeID 

il montre que tous les employés

EMPLOYEENAME REPORTID 
Roger    Null 
Peter    1 
Peter    2 
Shawn    3 
Shawn    2 
John    NULL 

si j'ajouter dans un where rc.ReportID = 1 il se montrent Peter seulement

Comment puis-je obtenir le format que je veux? Je ne veux pas de doublon Nom

+1

Si je comprends bien votre question, vous voulez que le valeurs avec NULL et 1? Si oui, il suffit de changer la clause WHERE à une condition supplémentaire dans le – Jaloopa

+0

puis-je obtenir des valeurs de 3 & 2? puis-je les faire apparaître comme NULL? – Ryan

Répondre

0

Comment puis-je obtenir le format que je veux? Je ne veux pas en double Nom

Utilisez la clause GROUP BY pour agréger les noms en double, comme dans cette requête:

SELECT U.Id as [User Link], Count(Pt.Id) AS ANSWERS 
FROM Users U, Posts P, PostHistory Ph, PostTypes Pt 
WHERE 
Pt.Id = Ph.PostHistoryTypeId 
AND 
U.Id = P.OwnerUserId 
AND 
P.Id = Ph.PostId 
AND 
Pt.Id = 2 
GROUP BY U.Id 
HAVING Count(Pt.Id) > 2000 
ORDER BY ANSWERS DESC 

Références

Questions connexes