Truy vấn con của bạn không thể trả về hai giá trị. Nếu bạn chỉ muốn nối các chuỗi, bạn không cần xml
kiểu dữ liệu nào cả. Bạn có thể thực hiện stuff()
và truy vấn con trong một câu lệnh:
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, '');