У меня есть таблица, в которой есть несколько дочерних элементов главного объекта. Любой дочерний элемент может встречаться более одного раза, и существует столбец Occurences, содержащий это число, поэтому данные в таблице выглядят примерно так:
ChildID | ParentID | Occurences
-------------------------------
1 | 1 | 2
2 | 1 | 2
3 | 2 | 1
4 | 2 | 3
Мне нужно получить список всех дочерних элементов, при этом каждый дочерний элемент появляется в результате в основном количестве раз, что-то вроде
IDENT | ChildID | ParentID
--------------------------
1 | 1 | 1
2 | 1 | 1
3 | 2 | 1
4 | 2 | 1
5 | 3 | 2
6 | 4 | 2
7 | 4 | 2
8 | 4 | 2
Я могу сделать это с помощью курсора, который зацикливает таблицу и вставляет столько строк, сколько необходимо, но я не думаю, что это лучшее возможное решение.
Спасибо за помощь
Создание сценария включено:
DECLARE @Children TABLE (ChildID int, ParentID int, Occurences int)
INSERT @Children
SELECT 1, 1, 2 UNION ALL
SELECT 2, 1, 2 UNION ALL
SELECT 3, 2, 1 UNION ALL
SELECT 4, 2, 3