我一直在努力解决这个问题,现在我一直陷入死胡同。也许这里有人可以帮助我。我在一家公司工作,我们将收到一份我们要修理的单位的档案。在某些情况下,我们会收到一份维修索赔,其中包含多个单元。我只有一个字段来导入序列号,我需要结合具体索赔的行数。
例如,我会得到的文件如下:
ClaimNumber SerialNumber
555 12345
555 123456
555 1234567
556 4321
557 3421
558 9876
558 98765
所以我需要导出这个表,将序列号组合成一个字段,如:
ClaimNumner SerialNumber
555 12345, 123456, 1234567
556 4321
557 3421
558 9876, 98765
我受限于以这种格式接收文件,所以这就是我必须要处理的全部内容。文件中还有其他字段,但我认为这些是我应该关注的。如果有人有任何想法,请告诉我。谢谢!
答案 0 :(得分:1)
鉴于您的表名为Claim,我认为应该这样做,(未经测试)
Select Main.ClaimNumber,
Left(Main.Serials,Len(Main.Serials)-1) As "Serials" From(Select distinct T2.ClaimNumber,
(Select T1.SerialNumber + ',' AS [text()]
From Claim T1
Where T1.ClaimNumber = T2.ClaimNumber
ORDER BY T1.ClaimNumber
For XML PATH ('')) [Serials]
From Claim T2) [Main]