У меня есть следующие наборы результатов:
Эти значения взяты из реляционной таблицы
ProductId, GroupId
1 | 4
2 | 4
2 | 5
3 | 4
3 | 5
CategoryId | ProductId
1 | 1
1 | 2
1 | 3
Все следующие «Id» относятся к категории этих продуктов
Example 1: Example 2: Example 3:
|Id |Group| |Id |Group | |Id |Group |
----------- --------------- ---------------
| 1 | 4 | | 1 | 4,5 | | 1 | 3,5 |
| 1 | 4,5 | | 1 | 3,4,5,6 | | 1 | 3,4,5,6 |
| 1 | 5,7 | | 1 | 5,7 | | 1 | 4,5 |
----------- --------------- ---------------
Мне нужно обработать эти таблицы, чтобы получить следующие результаты
Result 1: Result 2: Result 3:
|Id |Group| |Id |Group | |Id |Group |
----------- --------------- ---------------
| 1 | 4,5 | | 1 | 3,4,5,6 | | 1 | 3,4,5,6 |
| 1 | 4,5 | | 1 | 3,4,5,6 | | 1 | 3,4,5,6 |
| 1 | 5,7 | | 1 | 5,7 | | 1 | 3,4,5,6 |
----------- --------------- ---------------
Объяснение для этого, эти столбцы указывают, где должна быть размещена цена какого-либо товара, и все связанные цены должны быть в Если возможно, та же таблица, поэтому, когда группа может быть объединена с другой, это должно привести к появлению пустых пространств для столбцов, которые изначально не были для этого продукта, поэтому:
Используя пример 1, это окончательный результат:
| G4 | G5 |
--------------------
Product1 | 10 | |
Product2 | | 15 |
Product3 | 14 | 18 |
--------------------
| G5 | G7 |
--------------------
Product1 | 10 | 25 |
Product2 | | 15 |
--------------------
Используя пример 3, это окончательный результат:
| G3 | G4 | G5 | G6 |
------------------------------
Product1 | 10 | | 15 | 20 |
Product2 | | | 17 | |
Product3 | 14 | 18 | | |
------------------------------
Но я совершенно не знаю, как выполнять эти групповые объединения (пустые места в результирующем наборе не являются проблема.