我想采用除一列以外的所有行,其中包含重复数据,并采用一个唯一字段并将其放在一行中,并将一列添加到其中。我正在从三个要创建的数据库中创建一个表:
Wk RunOrder Job Number ModelNo .... ItemTag
23 28 1234 abcd 1
23 28 1234 abcd 2
23 28 1234 abcd 3
23 28 1234 abcd 4
12 28 1222 abbd 2
12 28 1222 abbd 4
我想要的是:
Wk RunOrder Job Number ModelNo .... ItemTag
23 28 1234 abcd 1,2,3,4
23 28 1222 abbd 2,4
RunOrder和ItemTag列来自不同的数据库
答案 0 :(得分:0)
我能够使用subquery
在下面获得所需的输出。我假设您想将Wk保留为分组的一部分。
if OBJECT_ID('tempdb..#temp') is not null
drop table #temp
CREATE TABLE #temp (
Wk int,
RunOrder int,
JobNumber int,
ModelNo VARCHAR(10),
ItemTag VARCHAR(5)
)
insert into #temp values(23,28,1234,'abcd',1)
insert into #temp values(12,28,1234,'abcd',2)
insert into #temp values(23,28,1234,'abcd',3)
insert into #temp values(12,28,1234,'abcd',4)
select distinct Wk,RunOrder,JobNumber,ModelNo,
SUBSTRING(
(
SELECT ','+t1.ItemTag AS [text()]
FROM #temp t1
WHERE t1.Wk = t2.Wk and t1.RunOrder=t2.RunOrder and t1.JobNumber=t2.JobNumber and t1.ModelNo=t2.ModelNo
ORDER BY t1.Wk
FOR XML PATH ('')
), 2, 1000) t
from #temp t2
您可以使用的另一种解决方案是使用derived table
。