【发布时间】:2014-03-03 19:33:10
【问题描述】:
我想添加一个逗号分隔的列,其中包含该产品的产品类别名称列表。这是我的数据模型:
我在此查询中获得了所有产品详细信息:
select d.name as 'Dealer Name',c.commissionamount as 'Commission Amount',c.createddate as 'Commission Created Date' ,p.name as 'Product Name'
from commission c
join dealer d
on d.dealerid=c.dealerid
join product p on c.productid=p.productid
join productcategorymapping pcm on p.ProductId=pcm.ProductId
join ProductCategory pc on pc.ProductCategoryId=pcm.ProductCategoryId
我只是想用这个查询为每个产品添加 csv 列,我只是不知道如何加入 2:
select stuff((
SELECT ',' + pc.Name
FROM ProductCategory pc
join ProductCategoryMapping pcm on pcm.ProductCategoryId=pc.ProductCategoryId
join Product p1 on p1.ProductId=pcm.ProductId
and p1.ProductId=1
FOR XML PATH('')),1,1,'');
它说 productId=1 但这是它需要加入到其他查询的地方。 所以结果会是这样的:
DealerName | Amount |date|product Name|csv
TestDealer1 | 105.25 |.. |ProdA |CatA,CatC,CatF
我还为此创建了一个 sqlfiddle:http://sqlfiddle.com/#!6/d574e/4
【问题讨论】:
-
+1 一个很好的问题以及 sql fiddle。
标签: sql sql-server