0

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!

0 Answers0