2016-06-07 9 views
0
select count(m.emp_id), m.EMP_ID 
from employee e join employee m 
on e.SUPERIOR_EMP_ID = m.EMP_ID 
group by m.EMP_ID; 

Ich kann m.emp_id zu zeigen, aber ich brauche m.Name. Irgendwelche Tipps?Wie finde ich eine Person und zähle die Anzahl der Personen, die sie verwalten?

+1

dies nicht möglich ist, ohne zu beantworten Ihre Datenbankstruktur zu kennen, und selbst dann, würden Sie mehr Deta erhalten gefilterte Antworten, wenn Sie einen spezifischen Fehler haben. –

Antwort

1

Um zu sehen, auch m.Name, brauchen Sie nur m.NameGROUP BY zu Ihrem SELECT und hinzuzufügen. Das heißt, ich denke nicht, dass deine Logik richtig ist. Sie wollen eine COUNT(e.Emp_ID) die Anzahl der Mitarbeiter pro Manager zu erhalten:

SELECT  COUNT(e.Emp_ID), m.Emp_ID, m.Name 
FROM  Employee e 
INNER JOIN Employee m on e.Superior_Emp_ID = m.Emp_ID 
GROUP BY m.Emp_ID, m.Name 

Wenn Sie nicht über kümmern sich der Manager-Mitarbeiter-ID zu sehen, können Sie das von Ihrem wählen entfernen und sehen einfach den Namen:

SELECT  COUNT(e.Emp_ID), m.Name 
FROM  Employee e 
INNER JOIN Employee m on e.Superior_Emp_ID = m.Emp_ID 
GROUP BY m.Name 

und vielleicht gebe es einige Aliase, so dass es mehr Sinn, einen Leser macht:

SELECT  mng.Name as "Manager", COUNT(emp.Emp_ID) as "Number of Employees" 
FROM  Employee emp 
INNER JOIN Employee mng on emp.Superior_Emp_ID = mng.Emp_ID 
GROUP BY mng.Name 
+1

Vielen Dank so viel! – icecreamguy12

+0

@ icecreamguy12 Kein Problem. Hat das Ihre Frage gelöst? –

Verwandte Themen