У меня есть таблица оргструктуры, которая смоделирована следующим образом:
+-------------+------------+-----------------+
| Employee_ID | Manager_ID | Department_Name |
+-------------+------------+-----------------+
| 1 | 2 | Level1 |
| 2 | 3 | Level2 |
| 3 | | Level3 |
+-------------+------------+-----------------+
Итак, каждый сотрудник ссылается на другую строку в цепочке, которая представляет организационную диаграмму. Для всех сотрудников эта модель используется для представления иерархии.
Однако для целей отчетности нам нужно запросить денормализованную таблицу, то есть где данные представлены следующим образом:
+-------------+--------+--------+--------+
| Employee_ID | ORG_1 | ORG_2 | ORG_3 |
+-------------+--------+--------+--------+
| 1 | Level1 | | |
| 2 | Level1 | Level2 | |
| 3 | Level1 | Level2 | Level3 |
+-------------+--------+--------+--------+
со многими столбцами ORG_x, необходимыми для представления всех уровней, которые могут быть найдены. Затем вы можете делать простые группировки, такие как GROUP BY ORG_1, ORG_2, ORG_3. Обратите внимание, что можно разумно предположить максимальное количество уровней.
Итак, вот мой вопрос: поскольку база данных находится на сервере SQL, могу ли я ожидать, что это осуществимо в Transact-SQL, чтобы я мог построить представление?
Прежде чем я начну изучать T-SQL, я хочу убедиться, что я на правильном пути.
(Кстати, если да, меня заинтересуют рекомендации для хорошего урока!)
Спасибо!
R.