У меня есть таблица с 3 столбцами: Model_Name, Style_Name и Option_Name.Как объединить все доступные комбинации Option_Names, сгруппированные по Model_Name и Style_Name?То, что я пытаюсь сделать, это перечислить продукт со всеми возможными комбинациями опций в отдельных строках.
Я пытался использовать STRING_AGG(Option_Name, ' / ')
WITHIN GROUP, но это просто объединяет все Option_Names.
Таблица будет выглядеть следующим образом.
Model_Name | Style_Name | Option_Name
7000 Series | Front Door | White
7000 Series | Front Door | Extra Lock
7000 Series | Front Door | Foam Filler
В идеале мы должны вернуть все комбинации с использованием SQL Server.
7000 Series | Front Door | White
7000 Series | Front Door | White / Extra Lock
7000 Series | Front Door | White / Foam Filler
7000 Series | Front Door | White / Extra Lock / Foam Filler
7000 Series | Front Door | Extra Lock
7000 Series | Front Door | Extra Lock / Foam Filler
7000 Series | Front Door | Foam Filler
и т. Д.
SELECT Model_Name, Style_Name
, STRING_AGG(CAST(Option_Name AS VARCHAR(MAX)), ' / ') WITHIN GROUP (ORDER BY Model_Name, Style_Name) Option_Name
FROM [dbo].[Product_Option_Master]
GROUP BY Model_Name, Style_Name
ORDER BY Model_Name, Style_Name
Это просто возвращает
7000 Series | Front Door | White / Extra Lock / Foam Filler