Это в SQL Server 2008.
Я планирую создать две таблицы для представления спецификации. Основные записи будут иметь следующие данные: -
[ID] [Код товара] [Описание товара]
1 ---- A001 ---- Сборка 1
2 ---- B001 ---- Sub Assembly 1 (Child of Assembly 1)
3 ---- B002 ---- Sub Assembly 2 (Child of Assembly 1)
4 ---- C001 ---- Компонент 1 (дочерний элемент подсборки 1)
5 ---- C002 ---- Компонент 2 (дочерний элемент подсборки 2)
Таблица отношений спецификации будет иметь следующие данные. [ID родительского элемента] и [ID дочернего элемента] являются внешними ключами для основной записи элемента. : -
[ID] [ID родительского элемента] [ID дочернего элемента]
1 ---- 1 ---- 2
2 ---- 1 ---- 3
3 ---- 2 ---- 4
4 ---- 3 ---- 5
Таким образом, в первой таблице содержатся только сами элементы, а в другой таблице - отношения, определяющие, какой родительский идентификатор имеет какие дочерние элементы.
Каким может быть SQL для извлечения всех дочерних элементов для сборки (A001), учитывая тот факт, что может потребоваться рекурсивная итерация в зависимости от данных, добавленных в таблицы выше?
Так что для приведенных выше данных, я должен получить вывод следующим образом: -
1) A001
1.1) B001
1.1.1)C001
1.2) B002
1.2.1) C002
Спасибо,
Чак.