本文目的:将N行查询结果中的某列字符型内容聚合在一起。
SELECT DISTINCT TOP 50000 pom.billing_date,pom.production_no AS 工卡,pom.customer_name AS 客户,
pom.cloth_no AS 布编号,pom.cloth_name AS 布种,pom.cust_section_no AS 客户款号,
pom.color AS 颜色,pom.dye_no AS 色号,pom.zstrip AS 总条数,pom.zwkgs AS 总重量, dpp.procedure_name AS 工序--,dpp.myid
INTO #T
FROM dbo.pro_outstore_detail pod WITH(NOLOCK)
LEFT JOIN dbo.pro_outstore_master pom WITH(NOLOCK) ON pod.invno = pom.invno
LEFT JOIN dbo.dye_pro_master dpm WITH(NOLOCK) ON pom.production_no=dpm.production_no
LEFT JOIN dbo.dye_pro_process dpp WITH(NOLOCK) ON dpm.production_no = dpp.production_no
WHERE pom.billing_date>='2019-11-10' AND pom.billing_date<='2019-11-15' AND ISNULL(dpp.procedure_name,'')>''
--以上是结果集中间表
SELECT 工卡,客户,布编号,布种,客户款号,颜色,色号,总条数,总重量,STUFF((SELECT ','+[工序] FROM #T B WHERE A.工卡=B.工卡 FOR XML PATH('')),1,1,'') AS 工序
FROM #T A GROUP BY 工卡,客户,布编号,布种,客户款号,颜色,色号,总条数,总重量
--此语句起聚合作用
DROP TABLE #T