Votre sous-requête ne peut pas renvoyer deux valeurs. Si vous voulez simplement concaténer des chaînes, vous n'avez pas besoin du xml
type de données du tout. Vous pouvez faire le stuff()
et sous-requête dans une seule instruction :
declare @Rep1Names nvarchar(max) = (
stuff((select ', [' + report_name + ']' as name
from (select distinct report_order, report_name
from #report
) x
order by report_order
for xml path('')
)
), 1, 1, '');
declare @Rep2Names nvarchar(max) = (
stuff(select ', isnull([' + report_name + '], 0) as [' + report_name + ']' as res
from (select distinct report_order, report_name
from #report
) x
order by report_order
for xml path('')
)
), 1, 1, '');