私はしばらくこれについて頭を悩ませてきました。主に、解決策を得ることではなく、それがどのように機能するかについてです。ソリューションの実装方法について説明していただければ幸いです。
これは単なるサンプル データです。インライン SELECT ステートメントを含む 5 つのテーブルを使用しています。SQL の達人に感謝します。
サンプル テーブル:
CREATE TABLE source
(
product varchar(20),
amount decimal
)
CREATE TABLE cat
(
category varchar(20),
product varchar(20)
)
サンプル データの挿入:
INSERT INTO source (product, amount) VALUES
('product1', 1.00),
('product2', 2.00),
('product3', 1.50),
('product4', 5.25)
INSERT INTO cat (category, product) VALUES
('Shirts', 'product1'),
('Green Shirt', 'product1'),
('Gadget', 'product1'),
('Food', 'product2'),
('Games', 'product4')
私の試用クエリ:
DECLARE @categories varchar(200)
SET @categories = NULL
SELECT
@categories = COALESCE(@categories + ',','') + cat.category
FROM cat
SELECT
DISTINCT source.product,
@categories
FROM cat
JOIN source on source.product = cat.product
出力
PRODUCT COLUMN_1
product1 Shirts,Green Shirt,Gadget,Food,Games
product2 Shirts,Green Shirt,Gadget,Food,Games
product4 Shirts,Green Shirt,Gadget,Food,Games
望ましい出力:
PRODUCT COLUMN_1
product1 Shirts, Green Shirt, Gadget
product2 Gadget, Food
product4 Games