J'ai le CTE ci-dessous qui fonctionne bien en remaniant une table d'employés et en construisant une liste étendue de l'id d'employé qui lui a été transmise ainsi que tous les rapports directs et indirects.Modifier CTE pour référencer un autre champ?
Je suis en train de faire un CTE soeur d'utiliser le nom d'utilisateur au lieu de id employé, mais je reçois aucune donnée de retour après que je fais les changements ...
Voici mon code de travail avec employeeID
, comment Je reçois cela fonctionne avec NTID
(employé) et 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
)
J'ai corrigé cette ligne: WHERE NTID = ISNULL (@EmployeeNTID, EmployeeNTID) tel qu'il est: WHERE NTID = ISNULL (@UserName, NTID) parce que la relation analogue entre employeeID et managerID est actuellement NTID et managerNTID. même avec ce corrigé je reçois des erreurs de syntaxe. des idées? – kacalapy
@kacalapy: erreurs de syntaxe ** où ** ?? Quelle ligne, quelle déclaration ?? –