Я работаю над базой данных SQL Server, которая содержит данные главной книги (JDE).
В частности, мне нужно запросить таблицу «Account Master», которая содержит список учетных записей (286 027 строк), некоторые из которых являются родителями для других учетных записей.Что мне нужно сделать, это установить отношения родитель-потомок между ними, чтобы я мог затем извлечь иерархию родитель-потомок.Мне бы хотелось, чтобы столбец «Родительский счет» в конце указывал на родительский [Account ID] для любой данной строки.Если родителя нет, то он должен содержать NULL (или любое значение, означающее отсутствие родителя).
Таблица называется Master Account и содержит большое количество столбцов, но для краткости я перечислил только соответствующие столбцы и их типы данных ниже:
[Account ID] (nvarchar(8), null) PK
[Business Unit] (nvarchar(12), null)
[Level of Detail] (nvarchar(1), null)
[Object Account] (nvarchar(6), null)
[Subsidiary] (nvarchar(8), null)
Естьоколо 6 уровней (1 - самый высокий уровень), перечисленных в столбце Уровень детализации.
Чтобы определить родителя любой данной учетной записи, у родителя будет:
- то же [Business Unit], что и у дочернего [Business Unit],
- значение [Уровень детализации], которое на единицу меньше дочернего [Уровень детализации],
- максимальное значение [Учетная запись объекта] + [Дочерняя компания], которое меньше или равно дочернему [Учетная запись объекта] +[Дочернее предприятие].
Я хотел бы сделать это в SQL, но я изо всех сил пытаюсь придумать, как бы я мог запросить таблицу в соответствии с приведенными выше правилами.Кто-нибудь может помочь?Спасибо.