Ich habe die CTE unten funktioniert gut in der Umschichtung einer Mitarbeiter Tabelle und Erstellen einer erweiterten Liste der Mitarbeiter ID an sie weitergegeben sowie alle direkten und indirekten Berichte.CTE ändern, um auf ein anderes Feld zu verweisen?
Ich versuche, eine Schwester CTE zu machen Benutzernamen zu verwenden, anstatt Mitarbeiter-ID, aber ich bekomme keine Daten zurück, nachdem ich die Änderungen ...
Hier ist meine Arbeits-Code ist mit employeeID
, wie kann ich erhalte diese mit NTID
(Mitarbeiter) und managerNTID
(Manager)
CREATE FUNCTION fnGetEmployeeHierarchy
(
@EmployeeId int = null
)
RETURNS TABLE
AS
RETURN
(
WITH yourcte AS
(
SELECT EmployeeId, ManagerID, NTID, FullName--, Name
FROM Employees
WHERE EmployeeId = isnull(@EmployeeId,EmployeeId)
UNION ALL
SELECT e.EmployeeId, e.ManagerID, e.NTID, e.FullName--, e.Name
FROM Employees e
JOIN yourcte y ON e.ManagerID = y.EmployeeId
)
SELECT EmployeeId, ManagerID, NTID, FullName--, Name
FROM yourcte
)
Ich habe diese Zeile repariert: WHERE NTID = ISNULL (@EmployeeNTID, EmployeeNTID), also ist: WHERE NTID = ISNULL (@UserName, NTID), weil die analoge Beziehung zwischen employeeID und managerID tatsächlich NTID und managerNTID ist. auch mit dieser behoben bekomme ich Syntaxfehler. Ideen? – kacalapy
@kacalapy: Syntaxfehler ** wo ** ?? Welche Zeile, welche Aussage ?? –