我尝试使用FOR XML PATH
选择t.JBTemplate, 东西( (SELECT N','+来自Table1的合同FOR XML PATH(''),TYPE) .value('text()1','nvarchar(max)'),1,2,N'')职位 从表1 t 按合同t.JBTemplate分组
但是,它结合了每个模板的所有作业。
答案 0 :(得分:1)
请尝试以下操作:
IF (OBJECT_ID('tempdb..#my_job_template') IS NOT NULL)
BEGIN
DROP TABLE #my_job_template
END;
CREATE TABLE #my_job_template (JCCO INT NOT NULL, [Contract] nvarchar(max) NULL, [JBTemplate] nvarchar(max) NULL);
INSERT INTO #my_job_template(JCCO, [JBTemplate], [Contract])
VALUES (17, 'Ascend AL', '601226.17')
,(17, '1192-10803', '601236.17')
,(17, 'P66_4Sites', '600948.17')
,(17, 'P66_4Sites', '601219.17')
,(17, 'P66_4Sites', '601234.17')
--select * from #my_job_template
SELECT [JCCO]
, [JBTemplate]
,STUFF((SELECT ', ' + CAST([Contract] AS VARCHAR(MAX)) [text()]
FROM #my_job_template
WHERE [JBTemplate] = t.[JBTemplate]
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') [Contract]
FROM #my_job_template t
GROUP BY [JBTemplate] , [JCCO]