我一直在努力解决这个问题。主要不是关于获得解决方案,而是它是如何工作的。如果您能解释解决方案是如何实现的,那就太好了。
这只是示例数据,我正在使用 5 个带有内联 SELECT 语句的表。谢谢 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