Home Forums Programming General Hierarchy without cursor/loop RE: Hierarchy without cursor/loop

  • Something like this?
    CREATE TABLE #EMP (EmpID CHAR(1),
                       MgrID CHAR(1));
    GO

    INSERT INTO #EMP
    VALUES
    ('A',NULL),    
    ('B','A'),    
    ('C','B'),    
    ('D','C'),    
    ('E',NULL),    
    ('F','E'),    
    ('G','F'),    
    ('H','G');

    GO

    SELECT *
    FROM #EMP;
    GO

    WITH Hierachy AS(
      SELECT E.EmpID,
            E.EmpID AS MgrID,
            E.EmpID AS MstID,
            1 AS HLevel
      FROM #EMP E
      WHERE E.MgrID IS NULL

      UNION ALL

      SELECT E.EmpID,
            H.EmpID AS MgrID,
            H.MstID,
            H.Hlevel + 1 AS HLevel
      FROM #EMP E
       JOIN Hierachy H ON E.MgrID = H.EmpID
    )
    SELECT H.EmpID,
           --H.MgrID,
           H.MstID
    FROM Hierachy H
    ORDER BY H.EmpID;
    GO

    DROP TABLE #EMP
    GO

    Thom~

    Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
    Larnu.uk