Как создать наборы подобных данных и связать обратно связанный ключ.Как агрегировать подобные наборы в SQL
В примере ниже показано, как необработанные данные и желаемый результат.
DECLARE @Data TABLE (PID INT, CID INT)
INSERT INTO @Data
VALUES (1, 1), (1, 2), (1, 3), (3, 1), (3, 2), (3, 3), (2, 1), (2, 2), (4, 3), (4, 4),
(5, 4), (5, 5), (8, 4), (8, 5), (6, 6), (7, 4), (7, 5), (7, 6)
В приведенных выше данных, CID наборы 1, 2, 3 отличаются от 1, 2. Они являются уникальными множества.
Я хочу, чтобы связать
PID 1 и 3 к множеству 1, 2, 3.
PID 2 установить 1, 2
PID 4 для установки 3, 4
ПИД-5 и 8, чтобы установить 4, 5
т.д.
общая цель состоит, чтобы вернуться XML, который похож на:
<Items>
<Item>
<Hierarchies>
<Hierarchy>
<CID>1</CID>
<CID>2</CID>
<CID>3</CID>
</Hierarchy>
</Hierarchies>
<PIDs>
<PID>1</PID>
<PID>3</PID>
</PIDs>
</Item>
<Item>
<Hierarchies>
<Hierarchy>
<CID>1</CID>
<CID>2</CID>
</Hierarchy>
</Hierarchies>
<PIDs>
<PID>2</PID>
</PIDs>
</Item>
<Item>
<Hierarchies>
<Hierarchy>
<CID>3</CID>
<CID>4</CID>
</Hierarchy>
</Hierarchies>
<PIDs>
<PID>4</PID>
</PIDs>
</Item>
<Item>
... Etc ...
</Item>
<Items>
На данный момент ... кофеин. Пробовал использовать PIVOT (о котором я не очень разбираюсь) и создания сумасшедшей логики на основе курсора. Прямо сейчас, я просто потерялся. Я в порядке с созданием XML, агрегация - это то место, где я застреваю. –
Вы пытались поставить клавиатуру, вытащить карандаш и бумагу и попытаться описать пошаговый алгоритм, который выводит вас из ввода в вывод? – mellamokb
Можете ли вы объяснить на английском языке, что вы пытаетесь выполнить? Если вы не можете, вы никогда не доберетесь туда. –