Пожалуйста, найдите ниже запрос, как хотите. Я создал MyTest как имя таблицы, которую вам нужно заменить.
SELECT
Case WHEN ISNULL(SecondTable.Id,0) = 0
THEN FirstTable.Dept
ELSE ''
END As Department,
Case WHEN ISNULL(SecondTable.Id,0) = 0
THEN Manager.Name
ELSE ''
END As Manager,
FirstTable.Name FROM MyTest As FirstTable
LEFT JOIN MyTest As SecondTable ON
SecondTable.ID = (SELECT Top 1 MyTest.ID
FROM MyTest
WHERE MyTest.Manager = FirstTable.Manager
AND MyTest.dept = FirstTable.dept
AND MyTest.Id < FirstTable.Id
ORDER BY MyTest.ID Desc)
LEFT JOIN MyTest As Manager On Manager.Id = FirstTable.Manager WHERE FirstTable.Manager <> 0 ORDER BY FirstTable.dept, FirstTable.ID
Какие databae вы используете? – Raphael
sql server 2008 – user1602788