SELECT B.交货单号,LEFT(List,LEN(List)-1) as 回库原因 FROM (
SELECT 交货单号,
(SELECT 回库原因+',' FROM (SELECT distinct 交货单号,回库原因 FROM 回库确认表_明细 as Z
WHERE 回库原因 is not null and 回库原因 <>'')
WHERE 交货单号=A.交货单号
FOR XML PATH('')) AS List
FROM Z as A
GROUP BY 交货单号
)B
SELECT 交货单号,
(SELECT 回库原因+',' FROM (SELECT distinct 交货单号,回库原因 FROM 回库确认表_明细 as Z
WHERE 回库原因 is not null and 回库原因 <>'')
WHERE 交货单号=A.交货单号
FOR XML PATH('')) AS List
FROM Z as A
GROUP BY 交货单号
)B
SELECT 交货单号,STUFF((SELECT DISTINCT ','+回库原因 FROM Z WHERE 交货单号=A.交货单号 FOR XML PATH('')),1,1,'') AS LIST
FROM Z AS A
GROUP BY 交货单号
我这里没问题,你的语句是怎么写的。CREATE TABLE #T
(交货单号 VARCHAR(10),
回库原因 VARCHAR(100))INSERT INTO #T
SELECT '1','A'
UNION ALL
SELECT '1','B'
UNION ALL
SELECT '3','C'
UNION ALL
SELECT '1','C'
UNION ALL
SELECT '1','B'SELECT 交货单号,STUFF((SELECT DISTINCT ','+回库原因 FROM #T WHERE 交货单号=A.交货单号 FOR XML PATH('')),1,1,'') AS LIST
FROM #T AS A
GROUP BY 交货单号