• Borrowing the DDL and data papulation scripts from dwain.c:

    SELECT CA.ItemID, CA.Date

    FROM @TableA AS CA

    LEFT JOIN @TableB AS B ON CA.ItemID = B.ItemID

    LEFT JOIN @TableA AS PA ON B.ParentID = PA.ItemID

    ORDER BY ISNULL(PA.Date, CA.Date), PA.Date, B.ItemID

    Execution plan, as well as the code, is way shorter.

    _____________
    Code for TallyGenerator