2017-05-22 3 views
-1

Ich habe eine Verknüpfung erstellt, um zu versuchen, den Manager-Nachnamen anstelle der ID des Managers zu erhalten. HierVersuch, Name statt ID-Nummer zu erhalten SQL

ist der Code, ich verwende:

SELECT DISTINCT 
    E.EmployeeID, E.LastName, E.FirstName, E.TitleOfCourtesy, m.ReportsTo AS 'Manager' 
FROM 
    Employees AS E 
LEFT JOIN 
    Employees AS m ON E.ReportsTo = m.ReportsTo 

Aber es zeigt immer noch die ID des Managers und nicht der letzte Name des Managers.

Values

Zum Beispiel: In der ersten Zeile ist der Manager EmployeeID 2 sondern die Nummer 2 Ich will den Nachnamen für Ihre Zeit Fuller des EmployeeID 2

Dank hat!

+0

Verwenden 'LEFT JOIN Mitarbeiter AS m ON E.ReportsTo = m.EmployeeID' –

+0

@juergend Wenn ich das tun, werden alle Manager erhalten' Null' – Jari

+0

Das bezweifle ich. Siehe meine vollständige Abfrage. –

Antwort

0

andersrum Join, das heißt für jede E, links m registrieren um den Manager zu erhalten:

SELECT DISTINCT E.EmployeeID, E.LastName, E.FirstName, E.TitleOfCourtesy, 
       m.LastName, m.FirstName 
FROM Employees AS E 
LEFT JOIN Employees AS m ON E.ReportsTo = m.EmployeeID 
0

Ihr kommen nicht korrekt ist. Verwenden Sie

SELECT E.EmployeeID, E.LastName, E.FirstName, E.TitleOfCourtesy, 
     m.ReportsTo AS ManagerId, m.LastName AS ManagerName 
FROM Employees AS E 
LEFT JOIN Employees AS m ON E.ReportsTo = m.EmployeeID 
+0

Danke, es hat funktioniert! Aber jetzt gibt es noch die Spalte 'ManagerID' mit' null' kann ich diese Spalte aus der Abfrage entfernen? – Jari

+0

Bitte präzisieren Sie, was Sie meinen oder stellen Sie eine neue Frage –

Verwandte Themen