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

解决方案 »

  1.   


    SELECT 交货单号,STUFF((SELECT DISTINCT ','+回库原因 FROM Z WHERE 交货单号=A.交货单号 FOR XML PATH('')),1,1,'') AS LIST
    FROM Z AS A
    GROUP BY 交货单号
      

  2.   


    我这里没问题,你的语句是怎么写的。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 交货单号