i found a CTE on here to check for circular reference on a managerial hierarchy table. But ran into this error:
Truncated incorrect DOUBLE value: 'Position_1234'
Here is the code:
WITH FindRoot AS
(
SELECT EE_Position,Manager_Position, CAST(EE_Position AS CHAR(50)) Path, 0 Distance
FROM Manger_Table
UNION ALL
SELECT C.EE_Position, P.Manager_Position, C.Path + N' > ' + CAST(P.EE_Position AS CHAR(50)), C.Distance + 1
FROM Manger_Table P
JOIN FindRoot C
ON C.Manager_Position = P.EE_Position AND P.Manager_Position <> P.EE_Position AND C.Manager_Position <> C.EE_Position
)
SELECT *
FROM FindRoot R
WHERE R.EE_Position = R.Manager_Position
AND R.Manager_Position <> 0
AND R.Distance > 0;
Thanks in advance!